我正在尝试为我的管理链接创建一个辅助方法。在相当多的
我有代码
<% if current_user %>
<%= link_to "Edit", edit_model_path(model) %>
<%= link_to "New", new_model_path %>
<%= link_to "Delete", model, :confirm => "You're a Noob", :method
=> :delete %>
<% end %>
仅在登录时显示这些。
我想代替他们做这样的事情
<%= admin_links(model) %>
并将当前项目传递给应用程序助手方法
def admin_links(m)
if current_user
a = "#{link_to "edit" edit_m_path(m)}"
a << "#{link_to "new" new_m_path}"
a << "#{link_to "Delete", m, :confirm => "Your a Noob", :method
=> :delete}"
end
end
或类似的东西。
最佳答案
基本上你需要将模型的类名转换成指向正确路径的东西。
model_name = m.class.to_s.underscore
然后用它来调用相应的路径方法
link_to "edit", send("edit_#{model_name}_path", m)
顺便说一句,您不需要将 link_tos 放在
#{}
中。因为该函数只返回一个字符串。
关于ruby-on-rails - Helper 中的动态路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1038770/