में शामिल होने पर विशेषताओं के साथ तालिका में शामिल होने के माध्यम से ac_many में ActiveRecord के accepts_nested_attributes_for सहायक का उपयोग कैसे कर सकते हैं: जॉइन टेबल में विशेषताओं को जोड़ते समय एसोसिएशन के माध्यम से?accepts_nested_attributes_for
उदाहरण के लिए, कहते हैं कि मैं एक टीम मॉडल मिल गया है:
class Team < ActiveRecord::Base
role = Role.find_by_name('player')
has_many :players,
:through => :interactions,
:source => :user,
:conditions => ["interactions.role_id = ?", role.id] do
class_eval do
define_method("<<") do |r|
Interaction.send(:with_scope, :create => {:role_id => role.id}) { self.concat r }
end
end
end
end
टीम has_many players
interactions
के माध्यम से, एक उपयोगकर्ता कई भूमिकाओं (खिलाड़ी, प्रबंधक, आदि) पर कब्जा कर सकते हैं क्योंकि।
मैं एक साथ जोड़कर तालिका में विशेषताओं को जोड़ते समय accepts_nested_attributes_for का उपयोग कैसे कर सकता हूं?
अगर मैं एक मौजूदा टीम रिकॉर्ड team
और एक मौजूदा उपयोगकर्ता रिकॉर्ड user
है, मैं कुछ इस तरह कर सकते हैं:
team = Team.create(:name => "New York Lions",
:players_attributes => [{:name => 'John Doe'}])
team.players.size
=> 0
:
team.players << user
team.players.size
=> 1
लेकिन अगर मैं एक नेस्टेड खिलाड़ी के साथ एक नई टीम बनाएं
उस अंतिम उदाहरण में, टीम, उपयोगकर्ता और इंटरैक्शन रिकॉर्ड बनाए जाते हैं (और टीम के पास इंटरैक्शन के माध्यम से उपयोगकर्ता होता है), लेकिन interactions.role_id विशेषता यहां सेट नहीं है।
क्या आपको कभी भी यह समस्या हल हो गई है? –
आपके प्रश्न का उत्तर इस पोस्ट में पाया जा सकता है: http://stackoverflow.com/questions/2182428/rails-nested-form-with-has-many-through-how-to-edit-attributes-of-join -आदर्श –