你好,我正在创建一个收藏夹功能,但它在数据库中创建了重复的 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
我不认为这是一个关联问题,但这可能就是我粘贴代码的原因。
出了什么问题?帮助将不胜感激。谢谢你!