post.rb
和现有2个模型之间创建关联:类别+工作模型?我如何获取post.rb
的属性content:text
,以便我可以添加来自work#new
- >的唯一帖子。 _form
部分 work
和category
型号:through categorywork
我想添加一个名为post
的新模型,其中包含一个名为content:text
的属性。我希望此模型的关联是这样的:每个工作都有很多类别,每个类别工作中的类别有一个独特的帖子。
不幸的是,我不知道如何正确地绘制或解释这种关联,所以我将在下面绘制一个临时架构以供参考。
例如:文字参考
一项工作
多个类别
独特帖子
例如:图形参考
工作#索引
工作#节目?类别1
工作#节目?类别2
如何编写关联以将post.rb
连接到预先存在的多对多关系
class Category < ActiveRecord::Base
validates :name, :presence => true
has_many :categoryworks
has_many :works, :through => :categoryworks
accepts_nested_attributes_for :works
attr_accessible :description, :name, :category_ids, :svg
end
class Categorywork < ActiveRecord::Base
validates :name, :presence => true
has_many :categoryworks
has_many :categories, :through => :categoryworks
accepts_nested_attributes_for :categories
attr_accessible :name, :subtitle, :category_ids, :svg
end
class Categorywork < ActiveRecord::Base
belongs_to :category
belongs_to :work
attr_accessible :category_id, :work_id
end
works_controller:新控制器中多对多关联的示例
我将work_controller.rb
添加哪些内容才能访问post.rb
attr内容:文字?
def new
@work = Work.new
@all_categories = Category.all
@work_category = @work.categoryworks.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @work }
end
end
_form Partial:显示类别与作品之间的多对多
我会写什么来将post.rb
attr内容:文本添加到此表单的每个复选框
<div class="field">
<%= hidden_field_tag "work[category_ids][]", nil %>
<% Category.all.each do |category| %>
<%= check_box_tag "work[category_ids][]", category.id, @work.category_ids.include?(category.id), id: dom_id(category) %>
<%= label_tag dom_id(category), category.name %><br>
<% end %>
</div>