【问题标题】:Rails - get database fields to update without having to click a submit button - possible?Rails - 无需单击提交按钮即可更新数据库字段 - 可能吗?
【发布时间】:2012-07-03 17:54:24
【问题描述】:

我有一个下拉列表供用户选择任务是否完成。我希望他们的更改能够更新数据库上的状态,而不必每次进行更改时都单击提交按钮。这可能吗?

基本上,默认情况下所有任务都标记为未完成,因此当用户单击下拉菜单并将其更改为完成时,我希望在数据库上更改此内容,而无需单击提交按钮。

任何人都可以提供任何帮助,谢谢!

这是我的代码:

<%= form_for task do %>
    <td><%= select :task, :complete, [ ["Yes",2], ["Partly",1], ["No",0]], { :action => "update" } %></td>
<% end %>

【问题讨论】:

    标签: ruby-on-rails ajax database submit


    【解决方案1】:

    尝试添加这个:

    :onchange => "this.form.submit();"
    

    查看RJS: Ajaxified select_tag了解更多使用方法

    【讨论】:

    • 谢谢 - 几乎成功了 - 它使用正确的信息更新了数据库,但是页面重新加载并且框中仍然显示“是” - 我怎样才能让它显示实际内容数据库中的字段?
    • :selected =&gt; ... 我认为您需要更改第一行才能访问您存储的数据。像&lt;%= form_for @task do |t| %&gt; 这样的东西。然后你可以使用&lt;% t.select ..., :selected =&gt; t.complete。也许这取决于你的 Rails 版本
    【解决方案2】:

    您可以使用 ajax 轻松做到这一点。你可以在select标签上监听onchange事件。

    这是 imo 网上最好的 ajax on rails 指南,所以也许你可以从中得到一些提示。

    【讨论】:

      【解决方案3】:

      有几个 gem 使用 JSON 请求来轮询模型。我建议观看this 视频。 Ryan 详细介绍了如何使用 gem 在页面上进行就地编辑。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-24
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 2017-09-29
        • 2022-07-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多