如果从特定路由调用,如何检查创建方法的验证?

How to check validation on creation method if its called from specific route?

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

post 'create_item', to: 'item#create'
post 'create_verified_item', to: 'item#create_verified'

我需要在 Item 模型中定义如下内容:

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