控制器和视图的助手

时间:2014-03-28 14:26:35

标签: ruby-on-rails helper

我有一个帮助方法,我需要在视图和控制器上使用。例如,绘制PayPal网址的方法......

def paypal_url
   "https://www.paypal.com/cgi-bin/webscr"
end

然后在某些控制器中我可以有类似的东西:

redirect_to paypal_url

在某种观点中我可以:

 <%= form_tag(paypal_url) %>

问题是:我应该把这个方法放在哪里?

我知道我可以将视图帮助器包含到控制器中。那不是我的问题......

2 个答案:

答案 0 :(得分:2)

在ApplicationController中定义它,如:

class ApplicationController < ActionController::Base

  helper_method :paypal_url

  def paypal_url
    'https://www.paypal.com/cgi-bin/webscr'
  end

end

之后,您将能够在任何视图或控制器中使用辅助方法。

答案 1 :(得分:0)

您应该阅读有关演示者模式的信息。关于它有一个非常好的railscast,但您可以通过快速谷歌搜索从许多来源找到信息。

简而言之,演示者模式是rails MVC设计的Model和View之间的桥梁。这个想法是模型逻辑不属于控制器(事实上,控制器不应该知道它所服务的模型),它当然不属于视图。

演示者模式提供了一种在不影响控制器的情况下将模型逻辑绑定到视图中的方法