一直在试图找到一个更好的方法来链接到包含/: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'
不使用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
下面应该可以帮你。
<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