一直试图找到一种更好的方法来链接到包含/:id的页面。因为我现在这样做的方式有效但如果我改变了什么就很容易破坏。
目前我有两个这样的例子。一个链接到你的个人资料完成如下:
<li><%= link_to "Your profile", root_url + "users/#{current_user.id}" %></li>
和另一个:
<%= link_to "Apply now", root_url + "answers/#{f.id}" %>
如何制作它以便我不必依赖于手动更改。在我的rake路线上,我不能写'answers_path /#{f.id}',例如因为它没有向我显示任何路径。
那我该怎么做?我目前为这两个设置的路线是:
match '/answers/:id', to: 'answers#show', via: 'get'
match '/users/:id', to: 'users#show', via: 'get'
答案 0 :(得分:0)
我不会使用match
而是定义resources
路线
resources :users, :answers
现在你可以使用:
<%= link_to 'Your Profile', current_user %>
<%= link_to 'Apply Now', f %>
您可以在此处了解有关rails路径助手和资源路由的更多信息 - http://guides.rubyonrails.org/routing.html
此外,如果您不需要所有CRUD操作,则可以使用only:
resources :users, :answers, only: :show
答案 1 :(得分:-1)
以下内容应该为您完成。
<li><%= link_to "Your profile", user_path(current_user.id) %></li>
和
<%= link_to "Apply now", answer_path(f.id) %>
但是,我建议您查看以下Rails指南:http://guides.rubyonrails.org/routing.html