我有在我的用户控制用户创建的照片下面的代码:
def new
@user = User.new
@pictures = @user.pictures.build({:placement => "front"},{:placement => "profile"})
end
然而,当我创建一个新用户,它是不会自动与建设安置“前”或图片“的个人资料。” 事实上,有任何对图片没有更新。 图片模型
attr_accessible :placement
在picture.rb
belongs_to :user
在user.rb
has_many :pictures
accepts_nested_attributes_for :pictures, allow_destroy: true
为什么我的生成命令默默地失败?
UPDATE
使用.save!我已经了解到, @pictures
被转让,但问题是没有被与之相关联的user_id。 当我故意分配USER_ID,如:
def new
@user = User.new
@pictures = @user.pictures.build({:placement => "front", :user_id => @user.id},{:placement => "profile", :user_id => @user.id})
end
它仍然不分配为user_id。
奇怪的是,当我在铁轨控制台中运行同样的命令,它不正确地分配 USER_ID。
看来,新@user没有得到分配给他,直到@pictures命令后自动识别运行,但家用机版正在取得成功,因为它是按顺序执行的操作。
所以,这就是为什么我看到一个空白的ID。
这究竟是为什么? 而不是此同步ID分配一些模型应该照顾有belongs_to
和has_many
和accepts_nested_attributes_for
?
什么是解决如果没有创建链接在一起的ID,直到保存后分配嵌套属性的适当方法?
为什么这个不行?