String 应为,获得字符串HABTM

String 应为,获得字符串HABTM,string,forms,checkbox,object-expected,String,Forms,Checkbox,Object Expected,此表格: <%= form_tag({:controller => "smart_lists", :action => "create"}, class: 'form-inline', :method => "POST") do %> <%= label_tag :name %> <%= text_field_tag :name %><br><br> <% @people.each do |person| %

此表格:

<%= form_tag({:controller => "smart_lists", :action => "create"}, class: 'form-inline', :method => "POST") do %>
<%= label_tag :name %>
<%= text_field_tag :name %><br><br>
  <% @people.each do |person| %>
    <%= check_box_tag 'people_id[]', id: person.id %><%= label_tag person.name %><br>
  <% end %>
<%= submit_tag "Create", class: 'btn' %>
我的日志中有这样的内容:

"name"=>"This is not working : (", "people_id"=>["{:id=>64}", "{:id=>8}", "{:id=>1}"]
我认为:

Person(#70133507313700) expected, got String(#70133469090180)
所以,我想我的问题是——有没有办法把这些东西从弦中分离出来?或者我可以用更好的方式通过表格发送他们吗?或者用更好的方法在控制器中捕捉它们


感谢您的帮助-Joey

我最终将表单中的复选框标签更改为:

<td><%= check_box_tag 'people[]', person.id %></td>
然后在控制器中,我循环通过:people参数并取出ID:

if params[:people]
  params[:people].each do |p|
    @smart_list.people << Person.where(id: p)
  end
end 
如果参数[:人]
参数[:人]。每个都有|
@聪明人
"people"=>["67", "11", "10", "23", "3", "1"],    
if params[:people]
  params[:people].each do |p|
    @smart_list.people << Person.where(id: p)
  end
end