2016-11-03 19 views
0

我正在構建我的第一個Rails應用程序,並且在嵌入的ruby文件中爲鏈接放置正確的路徑時遇到了問題。正確的Rails路徑放入嵌入式Ruby文件的視圖?

我想鏈接到一個帖子的「添加新評論」頁面。我希望用戶在點擊頁面上的「評論」鏈接時將其重定向到「http://localhost:3000/posts/1/comments/new」。我認爲嵌套的路線令我感到困惑。有人可以幫我嗎?

這裏是我的路線:

Prefix Verb URI Pattern       Controller#Action 
sessions_new GET /sessions/new(.:format)    sessions#new 
    users_new GET /users/new(.:format)     users#new 
     root GET /         pages#home 
     help GET /help(.:format)      pages#help 
     about GET /about(.:format)      pages#about 
    contact GET /contact(.:format)      pages#contact 
     signup GET /signup(.:format)      users#new 
     login GET /login(.:format)      sessions#new 
      POST /login(.:format)      sessions#create 
     logout DELETE /logout(.:format)      sessions#destroy 
     users GET /users(.:format)      users#index 
      POST /users(.:format)      users#create 
    new_user GET /users/new(.:format)     users#new 
    edit_user GET /users/:id/edit(.:format)    users#edit 
     user GET /users/:id(.:format)     users#show 
      PATCH /users/:id(.:format)     users#update 
      PUT /users/:id(.:format)     users#update 
      DELETE /users/:id(.:format)     users#destroy 
    post_comments POST /posts/:post_id/comments(.:format)  comments#create 
new_post_comment GET /posts/:post_id/comments/new(.:format) comments#new 
post_comment DELETE /posts/:post_id/comments/:id(.:format) comments#destroy 
     posts GET /posts(.:format)      posts#index 
      POST /posts(.:format)      posts#create 
    new_post GET /posts/new(.:format)     posts#new 
    edit_post GET /posts/:id/edit(.:format)    posts#edit 
     post GET /posts/:id(.:format)     posts#show 
      PATCH /posts/:id(.:format)     posts#update 
      PUT /posts/:id(.:format)     posts#update 
      DELETE /posts/:id(.:format)     posts#destroy 

下面是從.erb文件的視圖代碼(我放在一個 '#' 所在的路徑應該是:

<div class="col-md-8"> 
    <% if @user.posts.any? %> 
    <h3>Posts (<%= @user.posts.count %>)</h3> 
    <ol class="posts"> 
    <% @user.posts.each do |post| %> 
     <li id="post-<%= post.id %>"> 
     <%= link_to gravatar_for(post.user, size: 50), post.user %> 
     <span class="user"><%= link_to post.user.name, post.user %></span> 
     <br> 
     <span class="picture" style="color:red;"><%= post.picture %></span> 
     <br> 
     <span class="picture"><%= image_tag post.picture.url(:large) %></span> 
     <br> 
     <br> 
     <span class="content"><%= post.caption %></span> 
     <span class="timestamp"> 
       Posted <%= time_ago_in_words(post.created_at) %> ago. 

     <span class="edit_post"> 
       <%= link_to "Edit", edit_post_path(@user, @post) %> 
     </span> 
      | 
     <span class="delete_post"> 
       <%= link_to "Delete", post, 
       method: :delete, data: 
       { confirm: "Are you sure you want to delete this post?"} %> 
     </span> 


     <span class="comment_post"> 
       <%= link_to "Comment", '#' %> 
     </span> 

     </span> 
     </li> 
    <% end %> 
    </ol> 
<% end %> 

回答

1

這應該映射到您的路由:

<%= link_to "Comment", new_post_comment_path(post_id: post.id) %> 

並且您可以檢索控制器中的post_id - params [:post_id]