在 Rails 中仅更改模型的一个字段
Change only one field of model in Rails
在我的 Rails 应用程序中,我有一个名为 application 的模型,在这个模型中我有一个名为 status 的字段,这是我的模型
class Application < ActiveRecord::Base
belongs_to :job
belongs_to :user
scope :new, where(:status => 'New')
scope :reviewed, where(:status => 'Profile Reviewed')
scope :offered, where(:status => 'Offer Given')
scope :accepted, where(:status => 'Offer Accepted')
scope :hired, where(:status => 'Hired')
scope :declined, where(:status => 'Decline')
我想知道是否可以在应用程序显示页面中仅更改模式中的状态(所有带有复选框的状态)如果可以,最好的方法是什么,或者状态必须是单独的型号
控制器中的 update
方法没有义务更改所有字段。如果这就是您所需要的,它可以应用单一更改。这实际上取决于传入的参数。您甚至可以制作一个仅切换一件事的状态更改方法:
def change_status
@application.status = params[:status]
@application.save!
end
请记住,在处理此类下拉值时,您需要对模型进行验证以拒绝无效选择。
在我的 Rails 应用程序中,我有一个名为 application 的模型,在这个模型中我有一个名为 status 的字段,这是我的模型
class Application < ActiveRecord::Base
belongs_to :job
belongs_to :user
scope :new, where(:status => 'New')
scope :reviewed, where(:status => 'Profile Reviewed')
scope :offered, where(:status => 'Offer Given')
scope :accepted, where(:status => 'Offer Accepted')
scope :hired, where(:status => 'Hired')
scope :declined, where(:status => 'Decline')
我想知道是否可以在应用程序显示页面中仅更改模式中的状态(所有带有复选框的状态)如果可以,最好的方法是什么,或者状态必须是单独的型号
控制器中的 update
方法没有义务更改所有字段。如果这就是您所需要的,它可以应用单一更改。这实际上取决于传入的参数。您甚至可以制作一个仅切换一件事的状态更改方法:
def change_status
@application.status = params[:status]
@application.save!
end
请记住,在处理此类下拉值时,您需要对模型进行验证以拒绝无效选择。