如何从Ruby on Rails中的RJS助手访问视图助手?

时间:2011-02-15 15:43:06

标签: ruby-on-rails-3 unobtrusive-javascript rjs

我有一些常见的RJS,我在多个RJS文件中重复,所以想把它放到帮助器中。

我为app / helpers / application_helper.rb添加了一个方法,就像我通常用于html.erb文件一样。该方法有效,但它不能调用RJS文件可以的视图助手。

RJS文件中的一条线路是:

notices = flash.collect { |type,msg| content_tag(:p, msg, :class => type) }

但是无法从RJS帮助程序访问content_tag。为什么不,以及如何从那里访问它?

1 个答案:

答案 0 :(得分:0)

这样的事情怎么样?

#application_helper.rb
def view_helpers
  ActionController::Base.helpers
end

def do_it
  view_helpers.content_tag :div, :class => 'yes'
end

你必须在你从rjs调用的任何方法中使用view_helpers,这不是很好,但我在模型中尝试过(仅在2.3和3.1中获得了项目)并且有效... < / p>