Rails 3.2.8 & JQuery Tokeninput:尝试通过关系为has_many添加新记录,而不是替换表单中的所有当前记录



我有一个相互关联的技能数据库,作为彼此的先决条件。在技能索引中,我希望能够搜索其他技能并添加1个或更多作为先决条件。需要注意的是,我只希望用户能够添加先决条件,而不是删除它们,因为这是通过上下投票系统处理的。我正在使用JQuery Tokeninput,除了一件事之外,实际上所有这些都在工作:我不知道如何只添加先决条件,而不是替换提交特定技能的所有先决条件。

:

class Skill < ActiveRecord::Base
  attr_accessible :skill_relationship_attributes, :prereq_tokens      
  has_many :skill_relationships
  has_many :prereqs, :through => :skill_relationships
  has_many :inverse_skill_relationships, :class_name => 'SkillRelationship', :foreign_key => "prereq_id"
  has_many :inverse_prereqs, :through => :inverse_skill_relationships, :source => :skill
  attr_reader :prereq_tokens
  accepts_nested_attributes_for :skill_relationships, :allow_destroy => true
  def prereq_tokens=(ids)
    self.prereq_ids = ids.split(",")
  end
end
class SkillRelationship < ActiveRecord::Base
  attr_accessible :skill_id, :prereq_id, :skill_attributes, :prereq_attributes
  belongs_to :skill
  belongs_to :prereq, :class_name => 'Skill'
end
JQuery

:

$('#skill_prereq_tokens').tokenInput('/skills.json',
  { theme:'facebook',
    propertyToSearch:'title',
    queryParam:'search',
    preventDuplicates:'true'
  });
<<p> 视图/strong>:
<%= simple_form_for skill do |f| %>
  <%= f.input :prereq_tokens %>
  <%= f.submit %>
<% end %>

我觉得之前没有得到这个有点傻,但我通过改变preeq_tokens如何在我的技能模型中成为preeq_ids来解决我的问题。

我刚刚改变了这个:

def prereq_tokens=(ids)
  self.prereq_ids = ids.split(",")
end

:

def prereq_tokens=(ids)
  self.prereq_ids += ids.split(",")
end

就是这样。等号前面的加号。我希望这能帮助那些长时间编码而没有休息的人!

相关内容

  • 没有找到相关文章

最新更新