4
在我的軌道項目中,我有三個型號:ActiveRecord如何將現有記錄添加到has_many中的關聯:通過rails中的關係?
class Recipe < ActiveRecord::Base
has_many :recipe_categorizations
has_many :category, :through => :recipe_categorizations
accepts_nested_attributes_for :recipe_categories, allow_destroy: :true
end
class Category < ActiveRecord::Base
has_many :recipe_categorizations
has_many :recipes, :through => :recipe_categorizations
end
class RecipeCategorization < ActiveRecord::Base
belongs_to :recipe
belongs_to :category
end
有了這個簡單的has_many:通過設置,我如何可以採取定配方,像這樣:
@recipe = Recipe.first
,並添加一個類別這份食譜基於現有的類別,並且在相應的類別上進行更新。
所以:
@category = #Existing category here
@recipe.categories.build(@category)
然後
@category.recipes
將包含@recipe?
我之所以問這個問題,是因爲我試圖通過gem rails_admin來實現這種行爲,並且每次創建新的recipe對象時,指定它的類別的表單都是創建新類別的表單,而不是將現有的附加到這個配方。
因此,瞭解ActiveRecord如何將現有記錄與many_to_many關係中新創建的記錄相關聯會有所幫助。
謝謝。
謝謝! Isnt <<移位運算符? – 2014-10-31 01:36:00
看看[has_many](http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many) – mohameddiaa27 2014-10-31 01:42:21
@AdamBronfin不是真的。 http://stackoverflow.com/questions/6852072/what-does-mean-in-ruby – 2017-02-08 07:41:05