के माध्यम से मेरे पास तीन मॉडल हैं, सब कुछ है I_any: रिश्ते के माध्यम से। वे इस तरह दिखते हैं:है hasmmany का उपयोग करके:
class Company < ActiveRecord::Base
has_many :company_users, dependent: :destroy
has_many :users, through: :company_users
accepts_nested_attributes_for :company_users, :users
end
class CompanyUser < ActiveRecord::Base
self.table_name = :companies_users #this is because this was originally a habtm relationship
belongs_to :company
belongs_to :user
end
class User < ActiveRecord::Base
# this is a devise model, if that matters
has_many :company_users, dependent: :destroy
has_many :companies, through: :company_users
accepts_nested_attributes_for :company_users, :companies
end
यह लोड ठीक है, और जुड़ने के लिए प्रश्नों के लिए ठीक बनाया गया है। बहरहाल, जब भी मैं
@company = Company.last
@user = @company.users.build(params[:user])
@user.save #=> true
@company.save #=> true
दोनों User
रिकॉर्ड और CompanyUser
रिकॉर्ड बनाया हो, लेकिन CompanyUser
रिकॉर्ड में company_id
क्षेत्र की तरह कुछ करना NULL
INSERT INTO `companies_users` (`company_id`, `created_at`,`updated_at`, `user_id`)
VALUES (NULL, '2012-02-19 02:09:04', '2012-02-19 02:09:04', 18)
यह एक ही बात है जब करता है पर सेट है आप @company.users << @user
मुझे यकीन है कि मैं कुछ यहाँ बेवकूफ कर रहा हूँ कर रहा हूँ, मैं सिर्फ क्या पता नहीं है।
अगर आप किसी एक कंपनी को संपादित करें और मैं परम हैश से बाहर user_ids सरणी खींच सकते हैं और एक CompanyUser रिकॉर्ड बनाने के लिए की आवश्यकता होगी उन्हें चेक बॉक्स के साथ उपयोगकर्ताओं को जोड़ने के लिए अनुमति देने के लिए अनुमति देने के लिए करना चाहता था प्रत्येक के लिए? –
उपरोक्त पूरक उत्तर। –
धन्यवाद! यही वह था जो मैं याद कर रहा था। मैंने इस तरह के फॉर्म बनाने के बारे में भी सोचा नहीं था। मुझे बेवकूफ होने पर बुलाया। –