创建新对象时,如何将其与当前用户相关联

时间:2012-03-03 04:09:58

标签: ruby-on-rails ruby-on-rails-3.1

我有一个模型,允许用户创建许多。我只希望用户在登录时看到这些对象。到目前为止我设置了对象belongs_to:user和用户has_many:objects,但是如何在创建对象时设置用户属性。我基本上希望用户创建它,然后稍后使用对象find(where user=current_user)显示所有这些。

3 个答案:

答案 0 :(得分:5)

在您的objects_controller.rb中,创建操作执行以下操作:

@object = current_user.objects.build(params[:object])

而不是:

@object = Object.new(params[:object])

要检索当前用户的对象,只需:

@objects = current_user.objects

答案 1 :(得分:0)

您需要能够对用户进行身份验证的内容。我建议使用Deviseauthlogic

答案 2 :(得分:0)

@object = current_user.objects.build(params[:object])

<% if current_user %>
<% objects = current_user.objects %>
<% for object in objects %>
   <% object.name %>
<% end %>
<% else %>
<p>Not logged in</p>
<% end %>