1

我正在尝试一些新的东西,我很固执,所以我想用尽所有的可能性。

我有一个名为 navbar 的模型,其中包含一个链接字段。

在链接字段中,我存储了一些单词:

profile_link community_link

这些词很重要,因为它们也是我在 navbars_helper 中记录的方法的名称:

module NavbarsHelper
  def profile_link
    link_to current_user do
      image_tag(current_user.image.img.mini_avatar)
      current_user.name
    end
  end
  def community_link
    link_to 'Community', topics_path
  end
 ...
end

我尝试的新方法是从字符串中提取单词并使用它们来调用我的标题布局中的方法:

 - if signed_in?
      - @current_group.navbars do |navbar|
        - if navbar.kind == "Header"
          = navbar.links.to_s

导航栏所属组

所以,我得到的是标题中的字符串:profile_link community_link

但是,我想要的是调用这些方法。这可能吗?如果是这样,你能告诉我你会怎么做吗?

我在使用数组方面不是很有经验,我认为这可能与

4

1 回答 1

1

我想它可以工作,虽然我不确定它是否值得:你增加了很多复杂性,几乎没有额外的好处。

说,类似的东西

- if signed_in?     
  - @current_group.navbars.each do |navbar|
    - if navbar.kind == "Header"
      - navbar.links.split(' ').each do |method|
        = self.send(method)

基本上,获取字符串"profile_link community_link",使用空格字符将其拆分,然后将每个方法发送到视图(self在此上下文中)。使用send只是像平常一样执行该方法,但可以让您决定在运行时执行哪个方法:)

于 2013-06-26T07:57:46.120 回答