我在 Rails 中有这个辅助函数,我想知道是否user_path
可以以某种方式派生@user
它作为参数传递给函数。现在,user_path
在我的函数中被硬编码,这并不漂亮:
def link_to_next(entry)
link_to ">>", user_path(entry.next)
end
这就是我使用辅助函数的方式:
<%= link_to_next(@user) %>
谢谢你的帮助!
我在 Rails 中有这个辅助函数,我想知道是否user_path
可以以某种方式派生@user
它作为参数传递给函数。现在,user_path
在我的函数中被硬编码,这并不漂亮:
def link_to_next(entry)
link_to ">>", user_path(entry.next)
end
这就是我使用辅助函数的方式:
<%= link_to_next(@user) %>
谢谢你的帮助!
您可以使用用于在 Rails 3.2.13ActiveModel::Naming.param_key
中定义方法的方法:form_for
@foo = User.new
# => #<User id: nil, email: nil>
ActiveModel::Naming.param_key(@foo)
# => "user"
现在你可以link_to_next
这样定义:
def link_to_next(entry)
next_entry = entry.next
path_method = "#{ActiveModel::Naming.param_key(next_entry)}_path"
link_to('>>', send(path_method, next_entry))
end