Ruby on rails 如果创建方法是从特定路由调用的,如何检查其有效性?

Ruby on rails 如果创建方法是从特定路由调用的,如何检查其有效性?,ruby-on-rails,validation,rails-activerecord,rails-routing,Ruby On Rails,Validation,Rails Activerecord,Rails Routing,如果创建方法是从其他路径调用的,我想在创建方法上验证列的存在性。 例如,如果我有以下两条路线: post 'create_item', to: 'item#create' post 'create_verified_item', to: 'item#create_verified' 我需要在项目模型中定义如下内容: validates :verified_number, presence: true, if: Item.action_name == "create_verified" 任何人

如果创建方法是从其他路径调用的,我想在创建方法上验证列的存在性。 例如,如果我有以下两条路线:

post 'create_item', to: 'item#create'
post 'create_verified_item', to: 'item#create_verified'
我需要在项目模型中定义如下内容:

validates :verified_number, presence: true, if: Item.action_name == "create_verified"

任何人都可以提供帮助?

理想情况下,您可以在项目中添加一个属性来检查,例如:

# model
class Item
  attr_accessible :action_name

  validates :verified_number, presence: true, if: :create_verified?

  def create_verified?
    action_name == 'create_verified'
  end
end

# controller
item = Item.new(item_params)
item.action_name = params[:action]
item.save