関連を介して has_many を使用したネストされたフォームに関するほとんどすべての質問をここで読みましたが、モデルを機能させることができません。誰か助けてくれませんか?
アーキタイプとスカートの好みの 2 つのモデルがあり、スカートの好みモデルを介してリンクされています。
モデルは次のとおりです。
class Archetype < ActiveRecord::Base attr_accessible :occasion, :skirt_partworth, :title, :skirtpreferencings_attributes
has_many :skirtpreferencings has_many :SkirtPreferences, :through => :skirtpreferencings accept_nested_attributes_for :SkirtPreferences accept_nested_attributes_for :skirtpreferencings end
引用符
class Skirtpreferencing < ActiveRecord::Base attr_accessible :archetype_id, :skirt_preference_id, :skirtpreferencing_attributes
所属先 :archetype 所属先 :SkirtPreferences
accept_nested_attributes_for :SkirtPreferences終わり
class SkirtPreference < ActiveRecord::Base attr_accessible :archetype_id, ....
has_many :skirtpreferencings has_many :archetypes, :through => :skirtpreferencings
終わり
フォームは次のようになり、問題なく表示されます。
<%= form_for(@archetype) do |f| %> ... <%= f.fields_for :skirtpreferencing do |preference_builder| %> <%= preference_builder.fields_for :SkirtPreferences do |builder| %> <%= render "skirt_preferences_field", :f => builder %> <% end %> <% end %> ...
コントローラーで何かをしなければならないと思いますが、正確にはわかりません。
ありがとう!
コントローラーの追加:
class ArchetypesController < ApplicationController
def new
@archetype = Archetype.new
@archetype.skirtpreferencings.build
end
# GET /archetypes/1/edit
def edit
@archetype = Archetype.find(params[:id])
end
def create
@archetype = Archetype.new(params[:archetype])
end
class SkirtPreferencesController < ApplicationController
def new
@skirt_preference = SkirtPreference.new
end
def edit
@skirt_preference = SkirtPreference.find(params[:id])
end
def create
@skirt_preference = SkirtPreference.new(params[:skirt_preference])
end