开始学习 Ruby on Rails。
如何给表单添加虚拟字段?
提交表单后,这些字段必须合并并存储在一个数据库字段中。
最佳答案
首先像往常一样设置您的表单:
<%= form_for @user do |f| %>
<ol>
<li>
<%= f.label :first_name, 'First Name' %>
<%= f.text_field :first_name %>
</li>
<li>
<%= f.label :last_name, 'Last Name' %>
<%= f.text_field :last_name %>
</li>
<%= f.submit %>
</ol>
<% end %>
在这个例子中,我们为 first_name
和 last_name
添加了一个虚拟属性。
用户.rb
class User < ActiveRecord::Base
attr_accessor :first_name
attr_accessor :last_name
end
为您的新虚拟属性添加一个attr_accessor
。
users_controller.rb
def create
@user = User.new(:full_name => {'firstname' => user_params[:first_name], 'lastname' => user_params[:last_name]})
...
end
private
def user_params
params.require(:user).permit(:first_name, :last_name)
end
最后,添加一个允许虚拟属性参数的方法(假设是 Rails 4)。
要保存多个输入并将它们保存到数据库中的单个字段中,您可以组合 Controller 中的虚拟字段,然后将它们保存到数据库中,如上面的 create
方法所示。
关于ruby-on-rails - 如何向表单添加虚拟字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077437/