1

我使用Model.new(<attributes here>)在rails控制檯中手動創建對象。是否有一種簡單的方法可以列出模型需要包含哪些屬性才能使.save調用成功?Rails:列出創建所需的屬性

我運行軌道4.2.3

回答

1

你可以使用Model.validators驗證的數組。你必須以某種方式提取存在的驗證解析這個,是這樣的:

presence_validated_attributes = Model.validators.map do |validator| 
    validator.attributes if validator.is_a?(ActiveRecord::Validations::PresenceValidator) 
end.compact.flatten 
0

我發現來完成同樣的事情更簡單的方法:

當你失敗的創建,你可以檢查對象上的錯誤消息。

# 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"]}