2016-08-26 6 views
0

私のアプリケーションで、間違ったURLに送信しているform_forがあります。私はそれがPOST /posts/:post_id/comments(.:format) comments#create私のform_for [投稿、コメント]が間違ったURLに投稿していますか?

に行くことを期待していますが、それは代わりにこの要求を送信している

def index 
    @user = User.find(params[:user_id]) 

    @posts = @user.posts 

end 

ここ
Started GET "https://stackoverflow.com/users/6/posts?utf8=%E2%9C%93&authenticity_token=WgbO5FhAA0ZhXFdk%2FizEbqTVxg2HW9VDY7aUKQTLmy3qLXLC8EH9%2FKr0w53TcId2KYoJmU7uodCFJOIDufno8g%3D%3D&comment%5Bcontent%5D=qqqqqqqqqqqq111&commit=Comment" 

ここ
  <% @posts.each do |post| %> 
      <form class="col-md-12"> 
      <% comment = post.comments.build %> 
      <%= form_for [post, comment], :url => post_comments_path(post), html: {class: "col-md-12", method: "POST"} do |comment_fields| %> 
       <div class="form-group"> 
       <%= comment_fields.text_area :content, placeholder: "Write a comment...", class: "form-control", rows: "4" %> 
       </div> 
       <div class="form-group"> 
       <a class="col-md-1" href="#">Cancel</a> 
       <%= comment_fields.submit "Comment", class: "col-md-3 pull-right btn btn-primary" %> 
       </div> 
      <% end %> 
      <% end %> 

されているが、私のPostsControllerのインデックスメソッドであります私のルート:

Prefix Verb URI Pattern       Controller#Action 
      logout GET /logout(.:format)      sessions#destroy 
      login GET /login(.:format)      sessions#new 
     session POST /session(.:format)      sessions#create 
    new_session GET /session/new(.:format)     sessions#new 
    edit_session GET /session/edit(.:format)    sessions#edit 
       GET /session(.:format)      sessions#show 
       PATCH /session(.:format)      sessions#update 
       PUT /session(.:format)      sessions#update 
       DELETE /session(.:format)      sessions#destroy 
     post_likes GET /posts/:post_id/likes(.:format)  likes#index 
       POST /posts/:post_id/likes(.:format)  likes#create 
    new_post_like GET /posts/:post_id/likes/new(.:format) likes#new 
     edit_like GET /likes/:id/edit(.:format)    likes#edit 
      like GET /likes/:id(.:format)     likes#show 
       PATCH /likes/:id(.:format)     likes#update 
       PUT /likes/:id(.:format)     likes#update 
       DELETE /likes/:id(.:format)     likes#destroy 
    post_comments GET /posts/:post_id/comments(.:format)  comments#index 
       POST /posts/:post_id/comments(.:format)  comments#create 
new_post_comment GET /posts/:post_id/comments/new(.:format) comments#new 
    edit_comment GET /comments/:id/edit(.:format)   comments#edit 
     comment GET /comments/:id(.:format)    comments#show 
       PATCH /comments/:id(.:format)    comments#update 
       PUT /comments/:id(.:format)    comments#update 
       DELETE /comments/:id(.:format)    comments#destroy 
     user_posts GET /users/:user_id/posts(.:format)  posts#index 
       POST /users/:user_id/posts(.:format)  posts#create 

form_forでこれを行う方法はありますか?私はform_tagのpost_likes_pathをメソッド:deleteオプションで使うことができましたが、自動的に@ comment.post_idを投稿に設定したいと思います。

答えて

0

formをもう1つ内部に保管しないでください。form。 これを試してみてください:

<% @posts.each do |post| %> 
    <div class="col-md-12"> 
    <% comment = post.comments.build %> 
    <%= form_for [post, comment], :url => post_comments_path(post), html: {class: "col-md-12"} do |comment_fields| %> 
      <div class="form-group"> 
      <%= comment_fields.text_area :content, placeholder: "Write a comment...", class: "form-control", rows: "4" %> 
      </div> 
      <div class="form-group"> 
      <a class="col-md-1" href="#">Cancel</a> 
      <%= comment_fields.submit "Comment", class: "col-md-3 pull-right btn btn-primary" %> 
      </div> 
    <% end %> 
</div> 
<% end %> 
+0

ありがとう私はそれが数分で私を可能にするときに答えを受け入れるでしょう。 – srlrs20020

関連する問題