Ruby on Rails - 从视图中调用控制器方法

glc*_*n79 11 ruby controller ruby-on-rails view

对不起,我有一个Rails新手问题.在我的Rails应用程序中,如何从视图中调用控制器中定义的方法?例如,假设我编写了一个检索股票信息的自定义方法.在我看来,我希望有一个常规的HTML按钮,点击后,将调用我的自定义方法并填充股票结果.

怎么做的?我环顾四周,找不到直截了当的方法.但我确定我在这里遗漏了一些东西.

jim*_*orm 21

编辑:我通过标题提出问题,这不是问题所在.问题标题的答案位于底部

你想要的是一个ajax请求,它是一个单独的控制器动作.你需要:

  1. 单击按钮时,javascript请求路径并填充其DOM对象

  2. 一个返回ajax请求所要求的动作

有很多方法可以做到这一点,但如果你搜索"howto rails ajax",你会找到一个无数的教程来帮助你.我喜欢的一种方式叫做pjax:https://github.com/rails/pjax_rails

老答案......

声明a helper_method,如下:

在你的控制器中:

private
def find_stock
  ...
end
helper_method :find_stock
Run Code Online (Sandbox Code Playgroud)

在你看来:

<% find_stock.each do |stock| -%>
Run Code Online (Sandbox Code Playgroud)

文档:http://api.rubyonrails.org/classes/AbstractController/Helpers/ClassMethods.html#method-i-helper_method