我使用has_many :through
建立了与三个模型的关系:
class Curriculum class < ActiveRecord::Base
has_many :interests
has_many :vacancies,: through => :interests
end
class Vacancy class < ActiveRecord::Base
has_many :interests
has_many :resumes,: through => :interests
end
class Interest < ActiveRecord:: Base
belongs_to :vacancy
belongs_to :curriculum
end
为了创建课程和空缺,我通过行政创建它们,我需要知道如何创建对空缺id的兴趣,以及如何将它记录在系统上我必须得到它的id并建立新的银行利益关系。我想知道如何编程才能这样做,我想知道控制器将如何获得创建操作,以及更好的方法。
答案 0 :(得分:0)
答案 1 :(得分:0)
首先,尝试阅读整个"Guide to Rails on Associations",尤其是关于has_many :through
的部分。然后检查您的模式是否已迁移数据库,并为表interests
包含curriculums
和vacancies
所需的外键[{1}}和curriculum_id
。
如果全部到位,以下代码将创建两个对象之间的关系:
vacancy_id
最后两行创建了@curr = Curriculum.find(1)
@vac = Vacancy.find(1)
@curr.interests << @vac
@curr.save
和@curr
之间的兴趣,并将其存储在数据库中。因此,您不应该使用ID并直接处理它们,而是使用对象。
现在的第二部分是提供一个用户界面,以便在课程和职位空缺之间定义(和删除)利益。这里的基本流程是:
请参阅(较早的)播客Railscast #52如何在类似的上下文中执行此操作。或者查看has_many :through with checkboxes的示例。
另一种方法是使用JQuery自动完成,并逐个添加兴趣。请参阅使用JQuery Tokeninput的优秀播客Railscast #258。