2011-06-28 68 views
0

我有一個在管理:: PagesController#更新 頁(#64407864)預計更新的ActiveRecord :: AssociationTypeMismatch錯誤

的ActiveRecord :: AssociationTypeMismatch頁面中的錯誤,得到的字符串(#17069256) 應用程序/控制器/管理/pages_controller.rb:36:in'更新」

聯繫的線36 :: PagesController更新

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"} %> 

起來:


感謝,它的工作,但現在香港專業教育學院與新頁面創建

得到了錯誤叫ID爲零,這將 錯誤地爲4 - 如果你真的 希望零的ID,使用的object_id

提取的源(約行#70):

70:<%= f.select:related_ids, Page.all.delete_if {| P | p.id == f.object.id} .collect {| p | [p.title, p.id]},{:include_blank => TRUE},{ :多個=> 「多重」,:類=> 「select_multiple」}%>

回答

3

select場應該被稱爲related_ids,因爲它會傳回所選對象的ID,而不是實際的對象本身。

+0

感謝,它的工作,但我現在與頁面創建問題^)看到上面的代碼 – kashlo

相關問題