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

时间:2012-05-23 05:44:45

标签: ruby-on-rails ruby view controller

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

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

2 个答案:

答案 0 :(得分:21)

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

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

  1. javascript请求路线并在点击按钮时填充其DOM对象

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

  3. 有很多方法可以做到这一点,但是如果你搜索“howto rails ajax”,你会发现很多教程可以帮助你。我喜欢的一种方式叫做pjax:https://github.com/rails/pjax_rails

    旧答案......

    声明helper_method,如下:

    在你的控制者中:

    private
    def find_stock
      ...
    end
    helper_method :find_stock
    

    在您看来:

    <% find_stock.each do |stock| -%>
    

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

答案 1 :(得分:1)

您可以查看button_to查看助手

的文档

这是一种方式,当然,您可以使用远程选项通过AJAX请求执行此操作。