在 Rails 中的数据库错误中创建重复条目,可能是表单提交错误



你好,我正在创建一个收藏夹功能,但它在数据库中创建了重复的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 %>

这应该是在用户单击收藏夹按钮时调用我的收藏夹关系#创建

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 最喜欢的部分"只出现一次。 但是我的收藏夹关系#创建被调用了两次

这是怎么回事?

在我的课程模型中,这是用户试图收藏

的我所拥有的..
  belongs_to :user
  has_many :favorite_relationships
  has_many :users, :through => :favorite_relationships

在我的用户模型中,我有

  has_many :lessons
  has_many :favorite_relationships

收藏夹功能只是 Web 应用程序的一部分,这就是我有多个关联的原因。

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

  belongs_to :user
  belongs_to :lesson

我不认为这是关联问题,但可能是我无论如何粘贴代码的原因。

出了什么问题?如能提供帮助,将不胜感激。谢谢!

我修复了它。 有些东西腐败了,我必须做

rake assets:clean

最新更新