我的页面更新错误
Admin :: PagesController#update中的ActiveRecord :: AssociationTypeMismatch 页面(#64407864)预期,得到字符串(#17069256) app / controllers / admin / pages_controller.rb:36:在`update'
Admin :: PagesController更新的第36行
if @page.update_attributes(params[:page])
page.rb
class Page < ActiveRecord::Base
has_and_belongs_to_many :related, :class_name => "Page", :join_table => "pages_related", :foreign_key => "page_id", :association_foreign_key => "related_id"
end
_form.html.erb
<%= f.select :related, Page.all.delete_if {|p| p.id == f.object.id}.collect {|p| [p.title, p.id]}, { :include_blank => true }, {:multiple => "multiple"} %>
向上:
谢谢,它的工作,但现在我得到了新的页面创建错误
为nil调用id,这会 错误地是4 - 如果你真的 想要id为nil,请使用object_id
提取的来源(第70行左右):
70:&lt;%= f.select:related_ids, Page.all.delete_if {| p | p.id == f.object.id} .collect {| p | [p.title, p.id]},{:include_blank =&gt;是的, {:multiple =&gt; “multiple”,:class =&gt; “select_multiple”}%&gt;
答案 0 :(得分:3)
您的select
字段应该被称为related_ids
,因为它将传回所选对象的ID,而不是实际的对象本身。