【问题标题】:rails method from multiple methods多种方法的rails方法
【发布时间】:2016-04-06 07:21:33
【问题描述】:

所以我在我的 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' 部分而不是其余部分。这是为什么呢?

提前致谢!

【问题讨论】:

    标签: ruby-on-rails ruby presenter draper


    【解决方案1】:

    这是一个分组优先级问题,+ 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
    

    【讨论】:

    • 工作就像一个魅力!非常感谢:)
    • 现在我在视图中调用def rewards @favor.rewards.each do |reward| reward.title end end,但不是标题属性,而是打印出整个对象。你能帮我解决这个问题吗? :)
    • 抱歉,该代码看起来是多行的,但它是内联渲染的,因为它是注释(stackoverflow 不支持 cmets 中的代码块)。我不确定我是否了解您如何在视图中使用它。不过,这听起来确实是一个不同的问题,最好提出一个新问题。 SO 更像是百科全书而不是论坛,问题应该针对单个问题,而不是像论坛主题或对话那样发展。
    猜你喜欢
    • 2023-03-17
    • 2011-11-02
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多