【发布时间】:2022-11-22 13:01:33
【问题描述】:
我正在尝试为我的钓鱼俱乐部会议制作一张出席表,其中显示所有活跃成员并允许您在他们的名字旁边放置一个复选框,以记录他们是否参加了特定锦标赛的会议。我创建了一个“会议”脚手架,并在 _form 中列出了所有活跃成员,并允许用户勾选该成员是否参加了所选锦标赛的会议。但是,我在将哈希数组传递给我的 meetings_controller 时遇到了问题,而且我很困惑。
我读了很多文章,但我的设计基于这篇文章:Submit array of hashes with rails
这篇文章没有显示 create 方法中的内容,所以我有这个......
会议控制器:
def create
# puts " OUTPUT TEXT: #{params} "
@meeting = params[:meetings][:meetings]
@meeting.each do |m|
#If there is no attendance key, its nil. Make it false
# if !m[:meeting].has_key?("attendance")
# m[:meeting].attendance = false
# end
puts "OUTPUT TEXT: #{m[:meeting]}" # OUTPUT TEXT: {"member_id"=>"1", "tournament_id"=>"2", "attendance"=>"1"}
@meeting = Meeting.new(member_id: m[:meeting][:member_id], tournament_id: m[:meeting][:tournament_id], attendance: m[:meeting][:attendance])
end
respond_to do |format|
if @meeting.save
format.html { redirect_to @meeting, notice: "Meeting was successfully created." }
format.json { render :show, status: :created, location: @meeting }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @meeting.errors, status: :unprocessable_entity }
end
end
end
_form 输入:(基于上面链接的文章)
<% Member.where(active: true).each do |member| %>
<tr>
<td> <%= member.full_name %> </td>
<input multiple="multiple" value=<%=member.id %> type="hidden" name="meetings[meetings][]meeting[member_id]" />
<input multiple="multiple" value=<%=@tournament.id %> type="hidden" name="meetings[meetings][]meeting[tournament_id]" />
<td><input type="checkbox" value="1" name="meetings[meetings][]meeting[attendance]" /></td>
</tr>
<% end %>
当我点击提交表格时,它只是将我带到显示页面,其中只有这个显示在空白页面上......
{"controller"=>"meetings", "action"=>"show", "id"=>"18"}
即使我在 show 方法中有重定向行
def show
redirect_to meetings_path
end
我花了很多时间阅读,并进行反复试验以使其发挥作用。希望stackoverflow大神们帮忙。
【问题讨论】:
标签: ruby-on-rails forms hash-of-hashes