使用Ruby中的按钮更改属性的值

时间:2013-06-20 22:54:45

标签: ruby-on-rails ruby forms button

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

问题:我想从不同的模型/视图中做到这一点。例如,在Customers模型中,将属于该客户的所有“项目”的值更改为已付款(单击表单按钮)。

2 个答案:

答案 0 :(得分:5)

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 -%>

答案 1 :(得分:0)

闭包。捕获块中的这些变量,并将其传递给窗口小部件,以便在按下它时进行调用。