Helper 中的动态路径

2024-01-09

我正在尝试为我的管理链接创建一个辅助方法。在相当多的 意见 我有代码

<% 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 放入#{}因为该函数只是返回一个字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Helper 中的动态路径 的相关文章

随机推荐