0

你好,我正在创建一个收藏夹功能,但它在数据库中创建了重复的 id。它正确存储了 id,但它复制了条目。

在我最喜欢的形式我有...

<div id="favorite_form">
    <% if current_user.favorited?(@lesson) %>
      <%= render 'unfavorite' %>
    <% else %>
      <%= render 'favorite' %>
    <% end %>
</div>

我最喜欢的部分是......

<%= puts "xx favorite partial"%>
<%= form_for(current_user.favorite_relationships.build(lesson_id: @lesson.id), remote: true) do |f| %>
  <div><%= f.hidden_field :lesson_id %></div>
  <%= f.submit "Favorite", class: "btn btn-large btn-primary" %>
<% end %>

当用户单击收藏按钮时,它应该调用 my FavoriteRelationships#create

def create
    puts "xx create"
    puts params[:favorite_relationship][:lesson_id]
    @lesson = Lesson.find(params[:favorite_relationship][:lesson_id])
    current_user.favorite!(@lesson) 
    respond_to do |format|
        format.html { redirect_to @lesson }
        format.js
    end
end

在上面的代码中,我称我的用户模型函数为收藏!看起来像...

  def favorite!(lesson)
    puts 'xx favorite'
    favorite_relationships.create!(lesson_id: lesson.id)
  end

我放了打印语句,出于某种原因......'xx create' 被调用了两次,'xx favorite' 也是如此。部分被渲染一次,这是正确的,因为“xx 最喜欢的部分”只出现一次。但是我的 FavoritesRelationships#create 被调用了两次

到底是怎么回事?

在我的课程模型中,这是用户想要收藏的我拥有的..

  belongs_to :user
  has_many :favorite_relationships
  has_many :users, :through => :favorite_relationships

在我的用户模型中,我有

  has_many :lessons
  has_many :favorite_relationships

收藏夹功能只是网络应用程序的一部分,这就是为什么我有多个关联。

最后但并非最不重要的是,我在我的 favorite_relationship.rb

  belongs_to :user
  belongs_to :lesson

我不认为这是一个关联问题,但这可能就是我粘贴代码的原因。

出了什么问题?帮助将不胜感激。谢谢你!

4

1 回答 1

0

我修好了它。有些东西已经腐败了,我不得不做

rake assets:clean
于 2012-05-11T02:02:14.407 回答