来自多种方法的rails方法

时间:2016-01-02 00:06:08

标签: ruby-on-rails ruby presenter draper

所以我在我的Rails演示者中有这个代码(类似于Draper gem):

  def title
    h.link_to 'Favor', favor_path(@favor) + asked_or_published? + user_link
  end

  def asked_or_published?
    if asked_favor?
      h.content_tag(:p, "published by")
    elsif published_favor?
      h.content_tag(:p, "asked by")
    end 
  end

  def user_link
    h.link_to @favor.favor_asker.firstname, h.user_path(@favor.favor_asker)
  end

我在视图中调用title方法。问题是调用此方法只返回link_to 'Favor'部分,而不是其余部分。那是为什么?

提前致谢!

1 个答案:

答案 0 :(得分:2)

这是一个分组优先级问题,+ asked_or_published? + user_link位被添加到favor_path(@favor)生成的路径中。不确定它们是否也被正确转义,但这不相关。

替换它:

h.link_to 'Favor', favor_path(@favor) + asked_or_published? + user_link

使用:

h.link_to('Favor', favor_path(@favor)) + asked_or_published? + user_link