【发布时间】:2015-11-16 06:40:47
【问题描述】:
我正在构建应用程序 - 简单的成绩册,但被困在一件事上。我有用户、等级和测试的模型文件,其中:
class Grade < ActiveRecord::Base
belongs_to :user
belongs_to :test
end
class Test < ActiveRecord::Base
has_one :grade, dependent: :destroy
validates :topic, presence: true
end
class User < ActiveRecord::Base
has_one :profile, dependent: :destroy
has_many :grades, dependent: :destroy
end
Grade 表包含 user_id、test_id 和 result。
这个想法是这样的:来自 user#show 页面的每个用户只能查看他/她的某个科目的成绩(我只做了两个)。老师可以看到每个创建的学生的成绩。事情是这样的:当我以教师(管理员)身份登录并从某个用户页面转到成绩页面时,我的 URL 更改如下:
/user/7 -> /grades/7?subject=History
对于用户的 id,一切都很清楚,但在我的数据库中,我没有 id=7 的等级。所以问题是这样的:
我如何从成绩链接访问这个 id '7' 以将其与成绩表中的 user_id 进行比较,以仅显示该用户的成绩。尝试如下,但得到了空表:
<% @grades.each do |g| %>
<tr>
<% if Test.find(g.test_id).subject == 'History' && User.find(params[:id]) == g.user_id %>
<td><%= Test.find(g.test_id).topic %></td>
<td><%= Test.find(g.test_id).date %>
<td><%= g.result %></td>
<% end %>
</tr>
<% end %>
所以通常我正在寻找类似this_url(params[:id]) 的东西。你有什么想法?请帮忙!
【问题讨论】:
-
检查
params变量并访问您需要的内容 -
请粘贴生成URI的链接
标签: ruby-on-rails ruby ruby-on-rails-4 active-record-query