【问题标题】:Call rails method periodically定期调用 rails 方法
【发布时间】:2009-12-09 00:34:35
【问题描述】:

我希望在文本字段的内容发生更改时或每 n 秒自动调用 rails 方法。我怎样才能做到这一点? 该方法在对象的模型定义上。 另外,如何获取文本字段的内容?

谢谢。

【问题讨论】:

    标签: ruby-on-rails ajax


    【解决方案1】:

    你也可以使用内置的 rails helpers 并编写类似的东西

    <%= periodically_call_remote :url => {:controller=>'mailbox',
                                            :action => 'get_newest_messages'},
            :frequency => 15
    %>
    

    然后在指定的控制器中可以调用模型所需的方法。

    【讨论】:

      【解决方案2】:

      这将需要使用一些 javascript。我使用jQuery 库来帮助我。我会在网络('Google')“rails jquery”中搜索一些教程。

      或者,如果您更喜欢其他库,请查看 Best javascript libraries to work with rails?

      一旦您的 javsacript 库就位,您将需要某种脚本来监控输入。一种方法是使用keyup 事件来监听活动。然后,此脚本将通过 ajax 将您的数据发布到服务器。

      【讨论】:

      • 我已经知道如何检查某个元素是否发生了变化。这很容易使用 rails observe_field("content", :frequency => 1, :function => "alert('Element changed')") 我只是不知道如何调用对象的方法。
      • 而不是使用observe_field("content", :frequency =&gt; 1, :function =&gt; "alert('Element changed')") 会运行一些javascript 使用observe_field("content", :frequency =&gt; 1, :url =&gt; "controller/method/path" :with =&gt; "'text=' + value" )。这会将值传递给控制器​​中的方法。然后,您可以调用您的模型并将任何内容返回到您的视图中。
      • 对于每 n 秒监控一次字段,您可能需要检查 settimeout js 函数。
      猜你喜欢
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多