1
我使用Model.new(<attributes here>)
在rails控制檯中手動創建對象。是否有一種簡單的方法可以列出模型需要包含哪些屬性才能使.save
調用成功?Rails:列出創建所需的屬性
我運行軌道4.2.3
我使用Model.new(<attributes here>)
在rails控制檯中手動創建對象。是否有一種簡單的方法可以列出模型需要包含哪些屬性才能使.save
調用成功?Rails:列出創建所需的屬性
我運行軌道4.2.3
你可以使用Model.validators
驗證的數組。你必須以某種方式提取存在的驗證解析這個,是這樣的:
presence_validated_attributes = Model.validators.map do |validator|
validator.attributes if validator.is_a?(ActiveRecord::Validations::PresenceValidator)
end.compact.flatten
我發現來完成同樣的事情更簡單的方法:
當你失敗的創建,你可以檢查對象上的錯誤消息。
# app/models/price.rb
class Price < ActiveRecord::Base
validates_presence_of :value
end
# in console
p = Price.new()
=> #<Price id: nil, created_at: nil, updated_at: nil, value: nil>
p.save
=> false
p.errors.messages
=> {:value=>["can't be blank"]}