我不确定如何在我的视图中显示属于使用 Omniauth 登录的用户的标签。
视图中的页面会加载与其关联的随机照片和标签(通过可以从该页面更新的表单)。它可以工作,但是当我使用 Facebook 帐户 A 登录时,它会显示与使用 Facebook 帐户 B 登录完全相同的标签。
使用下面的 Called id for nil 获取 whiny nil 错误,这会错误地为 4 - 如果您真的想要 nil 的 id,请使用 object_id
观点是:
<%= render 'tag_form' %>
更新:表格是:
<%= form_for @brand, :html => {:multipart => true} do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :tag_list, "Your tags" %> <%= f.text_field :tag_list, :value => @brand.all_tags_list %>
</p>
<p><%= f.submit "Tag" %></p>
<% end %>
# <%= f.text_field :tag_list %> was changed to the one above.
这些标签也在用户的仪表板中被调用,如下所示(目前为空,因为显然我现在无法更新标签):
<%= brand.taggings( :tagger_id => current_user.id, :tagger_type => 'User').collect{|tagging| tagging.tag.to_s}.join(", ") %>
显示当前用户的应用程序控制器
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
品牌控制器
helper_method :current_user
def index
@brands = Brand.all
@brand = Brand.order("RANDOM()").first
end
添加:品牌模型
attr_accessible :name, :tag_list, :current_user
acts_as_taggable_on :tags
belongs_to :user
before_save :set_tag_owner
def set_tag_owner
set_owner_tag_list_on(@brand, :tags, self.tag_list)
self.tag_list = nil
end