【发布时间】:2013-04-13 16:55:13
【问题描述】:
我是 Rails 新手,对 has_one 和 has_many 关系有点困惑。
我有两个模型 - USER 和 LOCATION。
每个用户都有一个位置,一个位置可以属于许多用户。
所以,我是这样创建的:
class User < ActiveRecord::Base
belongs_to :location
end
class Location < ActiveRecord::Base
has_many :users
end
现在当我想创建一个新用户并保存位置时,我应该怎么做? 是这样吗???
@user = User.new
@user.name = params[:name]
@loc = Location.new
@loc.zip = params[:zip]
@loc.save
@user.location = @loc
@user.save
这是不对的,对我不起作用。任何帮助或指点将不胜感激。
rails 书籍仅指定如何创建这些关联。不是关于如何保存这些关联的记录。
【问题讨论】:
-
将 '@user.loc = loc' 更改为 '@user.location = loc' 应该可以工作
-
你需要说明它是如何失败的。错误信息是什么?另外,桌子上的列是什么?您是否在
users表上创建了location_id? -
你有 location_id 作为用户的字段吗?
-
感谢 Andrew France 和 rovermicrover。我假设 Rails 根据指定的关联创建外键。添加后,问题就解决了。
标签: ruby-on-rails ruby ruby-on-rails-3