とてもスタック!この 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>