2017-03-06 96 views
0

我很难理解如何将现有对象(类型为person)添加到Ruby-on-Rails中的另一个表(事件)。我创建了表格人员和表格事件之间的多对多关系,但现在我不知道如何将现有人员添加到现有事件。这是我的模型:将现有人员添加到rails中的事件

人:

class Person < ApplicationRecord 
has_many :messages 
has_and_belongs_to_many :event 

validates :name, presence: true 
validates :email, presence: true 
validates :birth, presence: true 
end 

事件:

<%= form_for([@event, @event.people.build]) do |f| %> 
    <p> 
     <%= f.label :email %><br> 
     <%= f.text_field :email %> 
    </p> 
    <p> 
     <%= f.submit %> 
    </p> 
<%end%> 

class Event < ApplicationRecord 
has_many :messages 
has_and_belongs_to_many :people 

validates :title, presence: true 
validates :description, presence: true 
validates :minimum_age, presence: true 
validates :maximum_age, presence: true 
validates_numericality_of :maximum_age, :greater_than => :minimum_age 
validates :start, presence: true 
validates :end, presence: true 
end 

现在,我使用的是官方轨教程制作这种形式在事件的看法很明显,form_for-parameters是错误的,但我真的不知道它们应该是什么?我只想让用户填写他的电子邮件地址(对应于现有人员)并将用户注册为此事件的服务员。我如何做到这一点?

回答

0

我相信你的问题有点宽泛,但我会尽力在一般情况下帮助你。

要添加到personevent可能想:

  1. 设置新person观点与形式。 Rails默认生成的视图会做。

  2. 在您的表格中使用select_tag助手,所有礼物的列表events及其ID。

  3. 随着那个当你创建新的person你需要从选择框中选择event。当您选择并提交表单时,Rails会将所选事件的ID存储到event_id属性person对象中,并将其放入数据库中。

  4. 确保您已将强有力参数添加到所需的所有属性。

我的技巧很宽泛,他们需要一些从您的谷歌搜索。但没有你当前设置的更多细节,这是我所能做到的。

相关问题