2016-07-20 9 views
0

レールを学ぶために、自分で作成したredditを書き始めました。現在、私は私のコメントのルートのような私のポストのルート内にネストされてい:私のコメントコントローラの場合ネストされたルートのページをレンダリングするには

resources :posts do 
resources :comments 
end 

を、インデックス&の下で、私は最後の部分を除いて、うまく機能

def index 
     @post = Post.find(params[:post_id]) 
     @comments = @post.comments 

     if params[:comment].nil? 
      @comment = Comment.new 
      @comment.post_id = @post.id 
     else 
      @comment = Comment.find([:comment]) 
     end 
    end 

    def create 
     @comment = Comment.new(comment_params) 
     @comment.user_id = current_user.id 
     @comment.post_id = params[:post_id] 

     if @comment.save 
      #flash 
      redirect_to post_path(@comment.post) 
     else 
      #flash 
      render 'index' 
     end 
    end 

次持って作成:render

私のコメントを他のコメントと同じページに表示する(redditのように)ので、代わりにwww.example.com/post/4/comment/newパスを使用することをお勧めしますwww.example.com/post/4/commentsパスを使用します。

私はリダイレクトを行うことができますが、ユーザーが修正できるようにコメントテキストを残したいと思います。セッション変数にテキストを入れてリダイレクトするのではなく、レンダリングでこれを正しく行う方法はありますか?私はこれが最悪のケースだと理解していますが、これを学習の機会として使用しようとしています。

答えて

0

コメントを部分的なインデックスに渡すことができます - いいえ?

<%= render "index", locals: {comment: @comment} %> 

または一部を試してください。

<%= render partial: "index", locals: {comment: @comment} %> 
関連する問題