2011-02-04 52 views
1

我正在使用Ruby on Rails 3.我试图使用remote_function,我想从我的帮助器而不是控制器调用一个方法。是否可以在助手文件中调用'remote_function'方法而不是使用Ruby on Rails的控制器?

所以,在我看来,文件我有:

<%= 
    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可以吗?如果是这样,该怎么做?

回答

0

不幸的是,不可能使用remote_function直接调用帮助器方法。所有remote_function都会生成一些JavaScript,可以向客户端发送对某个特定URL的Ajax请求。为了使该URL起作用,必须设置路由和控制器操作来响应它。

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

相关问题