【问题标题】:Is it possible to call a 'remote_function' method in helper file instead of controller using Ruby on Rails?是否可以在帮助文件中调用“remote_function”方法而不是使用 Ruby on Rails 的控制器?
【发布时间】:2011-06-21 10:45:38
【问题描述】:

我正在使用 Ruby on Rails 3。我正在尝试使用 remote_function,我想从我的助手而不是控制器中调用一个方法。

所以,在我的视图文件中,我有:

<%= 
    f.text_field :name, :id => "name_id",
      :onkeyup => remote_function(
        :update => "name_div",
        :url => { :action => :method_name }
%>

实际上,它将从控制器文件中调用以下方法(我也正确设置了路由器):

def method_name
  ...
end

我想将method_name 代码移动到我的帮助程序文件中,然后从帮助程序而不是控制器调用该方法(不设置路由器)。 是否可以使用remote_function?如果是这样,该怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby ajax ruby-on-rails-3 methods


    【解决方案1】:

    很遗憾,无法使用 remote_function 直接调用辅助方法。 remote_function 所做的只是生成一些 JavaScript,可以向特定 URL(从客户端)发出 Ajax 请求。要使该 URL 起作用,必须设置路由和控制器操作以响应它。

    如果您的目标是将代码移出控制器,您可以将操作方法​​放入一个模块中,并将该模块包含在一个或多个控制器类中。但是,您仍然需要设置路由以指向每个控制器中的该方法/操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多