1

とてもスタック!この Rails アプリのヘルプが必要です。

コンテンツについては、コンテンツのインデックスと表示をすべての人が利用できる必要があります。コンテンツは、非公開のコレクションに含めることができます。

devise を使用してプライバシーを設定しましたが、content_id をさまざまな collection_id に接続する方法がわかりません。フローは次のようになります。

ホームページのコンテンツをクリック

クリックするとコレクションのリストに移動し、コンテンツを追加する可能性があります

コレクションのボタンをクリックしてコンテンツを追加します [これは私が行き詰まっている場所です]

コレクションをクリックすると、コレクション内のすべてのコンテンツが表示され、不要になったコンテンツは削除できます。

has_and_belongs_to_many モデル、ネストされたフォームなどからすべてを見てきましたが、content_id を介して何ももたらされないようです。

また、メイン ビューは home/index.html.erb であることに注意してください。

    routes.rb
      resources :contents
      resources :collections
      resources :collections_contents

    collection model
      has_many :collections_contents, dependent: :destroy
      has_many :contents, :through => :collections_contents

    content model
      has_many :collections_contents
      has_many :collections, :through => :collections_contents

    collections_content model
      belongs_to :content
      belongs_to :collection


    Collection and content controllers are the normal scaffold.

    Collections_contents_controller

    def create
      @collection = current_collection
      content = Content.find(params[:content_id])
      @collections_content = @collection.collection_content.build
      @collections_content.content = content

    respond_to do |format|
    if @collections_content.save
       format.html { redirect_to @collections_content.collection, notice: 'Collections content was successfully created.' }
       format.json { render json: @collections_content, status: :created, location: @collections_content }
      else
        format.html { render action: "new" }
        format.json { render json: @collections_content.errors, status: :unprocessable_entity }
        end
      end
    end



    home/index.html.erb
<%  if user_signed_in? %>
  <table>
      <% @collections.each do |collection| %>
        <tr>
          <td><%= collection.name %></td>
          <td><%= collection.thumbnail %></td>
          <td><%= collection.content_number %></td>
          <td><%= link_to 'View Collection', collection %></td>
        </tr>
      <% end %>
  </table>
<% else %>
<% end %>

<%= link_to 'Create New Collection', new_collection_path %>
<table>
  <% @contents.each do |content| %>
    <tr>
      <td><%= content.title %></td>
      <td><%= content.short_description %></td>
      <td><%= content.published_date %></td>
      <td><%= content.image %></td>
      <td><%= link_to 'Read More', content %></td>
      <td><%= link_to 'Add Content to Collection', collections_path(content_id: content) %></td>
    </tr>
  <% end %>
</table>


    <% @collections.each do |collection| %>
      <tr>
       <td><%= collection.name %></td>
       <td><%= collection.thumbnail %></td>
       <td><%= collection.content_number %></td>
       <td><%= link_to 'Add to Collection' %></td>
     </tr>
4

1 に答える 1