【发布时间】:2011-12-07 16:27:07
【问题描述】:
所以,我有两个模型:User 和 Group。
User belongs_to :group
和
Group has_many :users。
当创建一个新的User 时,我想检查一个已经创建的Group 并分配它们,或者根据用户提供的信息创建一个新的Group。 Group.find_or_create_by_name("Name") 似乎是一个很好的方法,但我的问题是它应该放在哪里?我猜在“胖模型,瘦控制器”之后,它应该在user.rb。如果它在模型中,那么在用户创建时传递用户提供的字符串的最佳方法是什么?我应该在user.rb 中设置一个方法,然后在users_controller.rb 中调用该方法吗?
我猜一个相关的问题:我知道我的架构应该反映
create_table "users" do |t|
t.integer "group_id"
用于查询。 Rails 究竟是如何“自动”链接这些的?创建我的Group 模型时,我猜它需要有一个string:id 列,而Rails 只是将两者联系起来?
很抱歉我明显缺乏对关联的理解,但我正在努力不只是将一些笨拙的东西拼凑在一起,并希望确保我了解最好的解决方法。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 model associations