我想建立一個配置文件對象,像這樣:軌道 - 無法建立與上傳文件中的記錄
@user.profiles.build(params[:profile])
構建時被調用,它運行驗證了Profile
但時有發生的問題上傳的圖片及其包含的時間params[:profile]
當存在圖像並且構建被調用時,驗證將運行並且由於user_id未傳遞到proc中,因此無法找到用戶。但是,如果params[:profile]
中沒有圖像,則傳入user_id並找到用戶。
我的模型:
class User < ActiveRecord::Base
attr_accessor :require_profile_name
has_may :profiles
end
class Profile < ActiveRecord::Base
attr_accessor :name, :image
belongs_to :user
validates :name, if: Proc.new { |profile| profile.user.require_profile_name }
end
我發現沒人帶環視谷歌同樣的問題,所以我在哪裏開始的損失。
感謝您的任何幫助。
只是一個更正。當你調用'build'時,還沒有執行驗證。驗證只在調用'save','create'或'update_attributes'時運行(我可能缺少一些其他方法) – jvnill
你說得對,但是當調用build時,我得到了'undefined方法require_profile_name for nil:NilClass'。當然不是'保存'。 – thogg4