使用Devise保护Rails 3中关联对象的创建

时间:2011-10-03 15:00:37

标签: ruby-on-rails devise associations

我在我的Rails 3应用程序中设置了Devise。 Devise配置为使用名为Publisher的模型。 Publisher有几个相关的模型。我很难概念化如何使用Devise保护创建/销毁/查看这些相关对象。我习惯用以下内容创建相关记录:

pub = Publisher.find(:params[publisher_id])
pub.books << Book.create!(:title => "War and Peace")

我确定我只是错过了一些直截了当的东西,但是我在哪里实现逻辑,确认以pub登录的人实际上是创建此关联的人?它是否像这样简单?:

pub = Publisher.find(current_publisher)

如果是这种情况,我在哪里实现这个?在我们的实施中,这些记录将通过POST/publishers/:publisher_id/books(.:format)创建。这是否意味着应该在BooksController中的#create方法中出现?我知道这一切都是初级的,但是我每六个月左右就会接触一次RoR - 永远不会长时间地抓住它!

1 个答案:

答案 0 :(得分:0)

您应该使用Book的{​​{1}}关联创建新的Publisher个实例,如下所示:

books

这会为协会添加一本新书,并为您指定发布商。