我正在尝试解决一个非常常见的(我认为)任务.
有三种型号:
class Product < ActiveRecord::Base
validates :name, presence: true
has_many :categorizations
has_many :categories, :through => :categorizations
accepts_nested_attributes_for :categorizations
end
class Categorization < ActiveRecord::Base
belongs_to :product
belongs_to :category
validates :description, presence: true # note the additional field here
end
class Category < ActiveRecord::Base
validates :name, presence: true
end
Run Code Online (Sandbox Code Playgroud)
我的问题始于产品新/编辑表格.
在创建产品时,我需要检查它所属的类别(通过复选框).我知道可以通过创建名称为'product [category_ids] []'的复选框来完成.但是我还需要输入每个已检查关系的描述,这些关系将存储在连接模型(Categorization)中.
我在复杂的表格,habtm复选框等上看到了那些漂亮的Railscasts.我一直在寻找StackOverflow.但我没有成功.
我发现一篇文章描述了与我几乎完全相同的问题.最后一个答案对我来说有点意义(看起来这是正确的方法).但它实际上并不是很好(即如果验证失败).我希望类别始终以相同的顺序显示(在新的/编辑表单中;在验证之前/之后)和复选框,以便在验证失败时保持原样等等.
任何人都赞赏.我是Rails的新手(从CakePHP转换)所以请耐心等待并尽可能详细地写.请以正确的方式指出我!
谢谢.:)
forms ruby-on-rails nested-forms has-many-through ruby-on-rails-3