ruby-on-rails - 在 Ruby on Rails 中检查 has_many 关系中的记录
问题描述
我有以下型号:
Event
has_many :user through :event_users
has_many :event_users
User
has_many :events, through: :event_users
has_many :event_users
has_many :event_user_groups
EventUser
belongs_to :event
belongs_to :user
belongs_to :event_user_group, foreign_key: "group_id"
has_many :choices
EventUserGroup
belongs_to :event
has_many :users, through: :event_users
has_many :event_users, foreign_key: :group_id
Choices
belongs_to :event_user
基本上,用户在事件中为每个组中的特定用户投票。活动页面为每个组提供一个表单,他们选择成为该组“选择”的用户。
<% @event.event_user_groups.each do |group| %>
<%= form_for @event, :url => { :controller => "events", :action => :create_choice }, validate: true do |f| %>
<h4> <%= group.try(:name) %> </h4>
<% @event.event_users.where(:group_id => group.id).each do |user| %>
<%= radio_button("groups", "user", user.id) %>
<% end %>
<% end %>
<% end %>
这一切都很完美,但是目前用户可以多次投票,因为在加载页面时会为每个组呈现表单,无论他们是否已经为该组中的 event_user 创建了选择,所以我正在尝试do 是在第一个 each 循环内构造一个 if 语句,以确定是否应显示表单...
“如果登录用户已经为此 event_user_group 中的任何 event_users 创建了选择记录,则不要显示该表单。”
解决方案
推荐阅读
- html - 为什么我的 IDE 给我这段代码的“错误”?
- mongodb - 是否可以使用 Mongoose 查询 MongoDB 数据库中的集合?
- cython - 使用cython保护python文件,但显示找不到xlsx文件
- ios - Capacitor Filesystem.getUri 未在 IOS 上返回完整文件路径
- sql - SQL查询计数唯一标识符与第二列中每个匹配的数量
- java - 如何使用 io.jsonwebtoken 库验证 Google id_token
- loops - 如何打破对 FSharp 中列表的迭代?
- javascript - 如何在 xterm.js 中创建链接
- javascript - 如何给一个空元素高度?
- python - 如何遍历n维数组,但只能通过相邻元素?