在rails中以has_and_belongs_to_many关系记录数据

时间:2015-07-27 14:29:58

标签: ruby-on-rails has-and-belongs-to-many

我是rails的新手,我在使用has_and_belongs_to_many关系在数据库中记录数据时遇到问题。

我在has_and_belongs_to_manyevents

之间有participants个关系

参与者:

class Participant < ActiveRecord::Base
  has_and_belongs_to_many :events, join_table: :events_participants
end

事件:

class Event < ActiveRecord::Base
  has_and_belongs_to_many :participants, join_table: :events_participants
end

event表单中,我有一个collection_check_boxes来选择参与者:

<%= collection_check_boxes(:event, :participants, Participant.all, :id, :name) %>

最后在events_controller中,我定义了这样的需求参数:

params.require(:event).permit(participants: [:participant_id])

其余代码是rails g scaffold命令自动生成的代码。

所以,问题是:当我通过复选框选择Participant表格中的一个(或更多)Event并按下提交按钮时,我可以看到生成的INSERT INTO Event SQL,但没有任何关于INSERT INTO events_participants

的信息

我做错了什么?

提前致谢,

1 个答案:

答案 0 :(得分:3)

这一行

tweets = tweepy.Cursor(api.user_timeline, screen_name=user.screen_name).items()

应该是

<%= collection_check_boxes(:event, :participants, Participant.all, :id, :name) %>

您还需要更改以下

<%= collection_check_boxes(:event, :participant_ids, Participant.all, :id, :name) %>

params.require(:event).permit(participants: [:participant_id])