在rails中的db错误中创建重复条目,可能是表单提交错误

时间:2012-05-09 22:50:12

标签: database ruby-on-rails-3 forms duplicates

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

时,应该调用我的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

我把print语句出于某种原因...'xx create'被调用两次,'xx favorite'也是如此。部分被渲染一次,这是正确的,因为'xx favorite partial'只出现一次。但是我的FavoritesRelationships #create被调用了两次

发生了什么事?

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

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

在我的用户模型中我有

  has_many :lessons
  has_many :favorite_relationships

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

最后但并非最不重要的是我在我的最爱_关系.rb

  belongs_to :user
  belongs_to :lesson

我不认为这是一个关联问题,但这可能就是为什么我还是粘贴了代码。

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

1 个答案:

答案 0 :(得分:0)

我修好了。有些事情是腐败的,我不得不做的事情

rake assets:clean