【问题标题】:Change value of an attribute with a button in Ruby在 Ruby 中使用按钮更改属性的值
【发布时间】:2013-06-17 23:46:05
【问题描述】:

如何在我的 Ruby 应用程序中添加一个按钮,让我可以在页面内更改属性的值,即 item.paid 的值从 false 变为 true。

问题:我想从不同的模型/视图中执行此操作。例如,在客户模型中,将属于该客户的所有“项目”的值更改为已付款(通过单击表单按钮)。

【问题讨论】:

    标签: ruby-on-rails ruby forms button


    【解决方案1】:

    app/controllers/customers_controller.rb

    class CustomersController < ApplicationController
    
      def mark_all_items_paid
        customer = Customer.find(params[:id])
        customer.items.find_each { |item| item.update_column(:paid, true) }
        # redirect, respond with json, whatever
      end
    
    end
    

    config/routes.rb

    resource :customers do
      member do
        post :mark_all_items_paid
      end
    end
    

    你的看法:

    <%= form_tag { controller: 'customers', action: 'mark_all_items_paid', id: @customer }, { method: :post } do -%>
      <%= submit_tag "Mark All Items Paid" %>
    <% end -%>
    

    【讨论】:

    • 完美运行,谢谢!
    【解决方案2】:

    闭包。将这些变量捕获在一个块中,并将其传递给小部件以在按下时调用。

    【讨论】:

      猜你喜欢
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多