0

質問:

post.rb新しいモデル:と既存の 2 つのモデル: カテゴリ + 作業モデルの間に関連付けを作成するにはどうすればよいですか? ->パーシャルから一意の投稿を追加できるように、post.rbの属性をどのように取得しますか?content:textwork#new_form

workcategoryモデルの間に多対多の関係があります:through categorywork

postという属性で呼び出される新しいモデルを追加したいとcontent:text思います。このモデルの関連付けは次のようになります。すべての作品には多くのカテゴリがあり、作品内の各カテゴリには固有の投稿があります。

残念ながら、この関連性を適切に描き出す方法や説明する方法がわからないので、参考までにその場しのぎのスキーマを下に図と一緒に描きます。

例: テキスト参照

一作品

  • 名前:プロジェクトA

多くのカテゴリ

  • プロジェクトA -> カテゴリ名:UxD
  • プロジェクトA -> カテゴリ名:ID
  • プロジェクトA -> カテゴリ名:開発

ユニークな投稿

  • プロジェクト A -> UxD -> 投稿内容:lorem ipsum 1
  • プロジェクト A -> ID -> 投稿内容:lorem ipsum 2
  • プロジェクト A -> 開発-> 投稿内容:lorem ipsum 3

例: グラフィカル リファレンス

仕事#索引

仕事#索引


work#show?category1

work#show?category1


work#show?category2

work#show?category2





モデル

post.rb既存の多対多の関係に接続するための関連付けをどのように記述すればよいでしょうか

カテゴリ.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

work.rb

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

カテゴリーワーク.rb

class Categorywork < ActiveRecord::Base

  belongs_to    :category
  belongs_to    :work
  attr_accessible :category_id, :work_id
end

コントローラー

works_controller : 新しいコントローラーでの多対多の関連付けの例

attr content:textwork_controller.rbにアクセスするには何を追加しますか?post.rb

 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 content:text を追加するには、何を書きますか

<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>
4

0 に答える 0