gpt4 book ai didi

mysql - ruby检查数据库中是否存在数据

转载 作者:行者123 更新时间:2023-11-29 10:53:24 26 4
gpt4 key购买 nike

我对 ruby​​ on Rails 很陌生,但我再次遇到了与上次非常相似的问题。我有一个用户表、一个类(class)表和一个标记表。我可以使用 user_id、course_id 和成绩创建一个标记。

在我的模型中,我有:

/* Mark model */
class Mark < ActiveRecord::Base
belongs_to :user
belongs_to :course
end

/* Course model */
class Course < ActiveRecord::Base
has_many :marks
end

/* User model */
class User < ActiveRecord::Base
has_many :marks
end

所以我想做的是,当我用我的表单创建一个新标记时,我希望我的表单消失并显示一个按钮销毁!像这样:

<% if @mark.course_ids.include?(@course.id) and @mark.user_ids.include?(user.id)
# Button destroy
<% else %>
<%= form_for Mark.new do |f| %>
<%= hidden_field_tag :course_id, @course.id %>
<%= hidden_field_tag :user_id, user.id %>
Grade: <%= number_field_tag :grade, nil, min: 0, max: 100 %>
<%= f.submit %>
<% end %>
<% end %>

目标是避免之前添加标记时的形式。但这里显然@mark.course_ids和@mark.user_ids不存在!!

感谢您的帮助!

最佳答案

首先,我建议您重新考虑您的表格,也许看看多对多关系。

关于您的问题,您想知道是否存在属于特定用户的特定类(class)的标记,因此您需要这样的内容:

Mark.where(course_id: @course.id, user_id: current_user.id).any?

如果存在这样的记录,则返回 true。

关于mysql - ruby检查数据库中是否存在数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43369839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com