どのユーザーが投稿したのか、どのトピックに投稿したのかを知りたいので、
Micropostモデルに2つの1対多を与えています。
class Micropost < ActiveRecord::Base belongs_to :user belongs_to :topic end
class Topic < ActiveRecord::Base has_many :microposts end
class User < ActiveRecord::Base has_many :microposts ・・・ end
topic/showでmicropostの表示、投稿をさせています。
<h2 class="text-center"><%= @topic.title %></h2> <% @microposts.each do |micropost| %> <p><%= micropost.content %></p> <% end %> <%= form_for([@topic, @micropost]) do |f| %> <div class="field"> <%= f.label :content %><br /> <%= f.text_area :content %> </div> <%= f.submit "Post", class: "btn btn-large btn-primary" %> <% end %>
routesは以下のように。
Rails.application.routes.draw do resources :topics, only: [:index, :show, ] do resources :microposts, only: [:create, :destroy] end ・・・ end
microposts_controller、topics_controllerを以下のようにしました。
class MicropostsController < ApplicationController def create @topic = Topic.find(params[:topic_id]) @micropost = @topic.microposts.build(micropost_params) if @micropost.save flash[:success] = "Micropost created!" redirect_to root_url else @feed_items = [] render 'topics/show' end end private def micropost_params params.require(:micropost).permit(:content) end end
class TopicsController < ApplicationController def show @topic = Topic.find(params[:id]) @microposts = @topic.microposts @micropost = Micropost.new end end
ここまでやってtopic_idに値を入れられ、topic/1での投稿はtopic/1のみ、
topic/2の投稿はtopic/2のみで閲覧出来るようになったのですが、
自分の知識ではuser_idにも同時に値を入れることが出来ませんでした。
どなたか詳しく教えて頂けないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/09/26 14:35