我有一个PostsHelper
,可以帮助我生成链接:
module PostsHelper
def populate_update_link(link1, link2, parameter)
if current_user
public_send(link2, parameter)
else
public_send(link1)
end
end
end
我称之为:
<%= link_to 'Update', populate_update_link('new_post_path', 'new_post_path', parent_id: @post) %>
我想要生成的是这样的链接:
<%= link_to "(Update)", "#", class: "togglesidebar" %>
如何通过public_send
将课程发送到生成的链接?
答案 0 :(得分:1)
根据rails API,您可以在link_to的第三个参数上设置给定链接的html选项(即http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to)
在您的情况下,您需要定义另一个返回选项数组的方法,例如{id:“my_id”,类:“my_class_1 my_class_2”}并将此方法作为link_to的第3个参数调用。
def generate_html_options(param_1, param_2)
....
body
....
return hash of options
end
打算像这样使用:
<%= link_to('Update', populate_update_link('new_post_path', 'new_post_path', parent_id: @post), generate_html_options(...)) %>