我正在尝试使用路径助手来处理对象的名称属性
所以在路线
get 'reset/:name', to: 'users#reset_name', as: 'reset_name'
在controller reset_name def
中... @user
在视图中(html.erb)
... <%= link_to reset_name_path(@user) %>
由于某种原因链接仍然像/ reset / name / 1那样出现,它使用对象的id而不是name。我做错了什么?
答案 0 :(得分:0)
您可以覆盖to_param
方法,以便在生成路由时使Rails使用name
而不是id
。这将适用于在User
模型上运行的所有路线。
class User < ActiveRecord::Base
def to_param
name
end
end
或者,如果您只想对某些路线执行此操作,则只需更改link_to
:
<%= link_to reset_name_path(:name => @user.name) %>