1
我有一個User
,它有很多Profession
,Occupation
正在連接這兩個。在多對多關係中選擇標籤不顯示
我試圖用bulder在@user
中顯示一個選擇菜單,其中包含可用的職業。
要調試我已經試過以下三個變化,但不包含代碼都被渲染(該表格的其餘部分沒有問題):
<%= f.fields_for :occupations do |builder| %>
<%= builder.collection_select(:profession_id, Profession.all, :id, :title) %>
<%= bulder.select :profession_id, Profession.all.collect {|p| [ p.name, p.id ] }, { include_blank: true })) %>
<% end %>
<%= select("occupation", "profession_id", Profession.all.collect {|p| [ p.title, p.id ] }, { include_blank: true }) %>
我應該怎麼做是錯在這裏幹什麼?我沒有得到任何錯誤,我只是沒有得到任何html的選擇標籤。
這裏是我的模型:
class User < ActiveRecord::Base
has_many :occupations, dependent: :destroy
has_many :professions, through: :occupations
accepts_nested_attributes_for :occupations
end
class Profession < ActiveRecord::Base
has_many :occupations, dependent: :destroy
has_many :users, through: :occupations
end
class Occupation < ActiveRecord::Base
belongs_to :user
belongs_to :profession
end
我做到了這一點,現在*發生了一些事情 - 不知道它是好還是壞。重新加載時,我得到以下錯誤「未定義的方法'occupations_path'」。我知道這是一個單獨的問題,但爲什麼它似乎呈現一個職業_道路? –
@FellowStranger幾乎可以肯定它試圖爲'fields_for'創建目標路徑,並發現沒有路由幫助程序可以這樣做。使用'rake routes'來弄清楚發生了什麼。 'fields_for'目標必須匹配Occupation控制器的'PUT'和'POST'方法。 – Gene
感謝您的輸入,儘管我對'fields_for'部分需要單獨路由非常困惑 - 並不是使用'fields_for'來指示相關模型嵌套到主窗體對象('@ user') )並繼承它的'路由? –