我是rails的新手,我在使用has_and_belongs_to_many关系在数据库中记录数据时遇到问题。
我在has_and_belongs_to_many
和events
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
我做错了什么?
提前致谢,
答案 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])