如何通过帮助程序传递类属性

时间:2014-12-11 19:23:35

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个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将课程发送到生成的链接?

1 个答案:

答案 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(...)) %>