我一直在阅读这个问题(Ruby on Rails: Submitting an array in a form),但它没有回答我的问题。
我有这样的表格:
<div class="signup pull-right">
<div>
<p style="color: white">Create Doctor:</p>
<%= form_for(@doctor) do |d| %>
<%= d.text_field :name[1], :placeholder => "name" %>
<%= d.text_field :name[2], :placeholder => "surname" %>
<%= d.text_field :email, :placeholder => "email" %>
<%= d.text_field :password, :placeholder => "password" %>
<%= d.text_field :password_confirmation, :placeholder => "password confirmation" %>
<%= d.submit "Sumbit", class: "btn btn-small btn-primary pull-right", id: "boton" %>
<% end %>
</div>
其中name是一个数组。我想要的是分别捕获名字和姓氏,并在名称[]内加入它们。我无法轻易找到方法。你有什么建议吗?
提前致谢。
答案 0 :(得分:1)
你不需要这样的黑客来解决问题。通过虚拟cattr_accessor
设置属性将非常简单和传统。
class Doctor < ActiveRecord::Base
cattr_accessor :first_name, :surname
# others...
end
然后以表格
<%= form_for(@doctor) do |d| %>
<%= d.text_field :first_name, :placeholder => "first name" %>
<%= d.text_field :surname, :placeholder => "surname" %>
然后在控制器中
def create
attr = params[:doctor]
attr[:name] = "#{attr.delete!(:first_name)} #{attr.delete!(:surname)}"
@doctor = Doctor.new(attr)
if @doctor.save
# blah blah
end
答案 1 :(得分:0)
我会检查,直到我生成这个html:
<input name='doctor[name][]'>
我会尝试:
<%= text_field_tag 'doctor[name][]' %>