【发布时间】:2011-07-28 08:07:50
【问题描述】:
请原谅新手的问题,但我很难过。我是一名正在转换 Rails 的老师
1 个应用到 Rails 3。我的“验证”控制器正在从我的数据库中获取正确的值,
但是当视图尝试访问变量时,我被告知它们在“nilClass”中。
这是我的控制器:
文件ROOT/app/controllers/verify_controller.rb:
class VerifyController < ApplicationController
@student = Assignment.get_student
@assignments = Assignment.get_assignments
logger.info("VERIFY: @student is #{@student}")
logger.info("VERIFY: @assignments is #{@assignments}")
end
这是我的看法:
文件ROOT/app/views/verify/list.html.erb:
<?xml version="1.0" encoding="UTF-8" ?>
<!--
This is our listing view.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Student assignments</title>
</head>
<body>
<div id="assignment-list">
<!-- @student is a Ruby variable. The @ means it is a "member"
which is accessible beyond the code that calculates it. (The
class is the VerifyController class, which we will be seeing
shortly.) See below for the angle brackets!
-->
<h2>Assignments for <%= @student %></h2>
<table cellspacing="5" cellpadding="5" border="2">
<tr>
<th>Student</th>
<th>Description</th>
<th>Date received</th>
</tr>
<!-- HTML alone doesn't know how many rows are in the table, so
Ruby has to look at the variables and provide a loop to do
the rows .
-->
<!-- < % and % > delimit Ruby code in HTML so long as the Ruby
doesn't produce a value (there is no blank space between
the angle brackets and the % signs; I had to put one in
to prevent Ruby from trying to interpret this comment!)
If the expression does produce a value, < % = and % > are the
delimiters.
-->
<% logger.info("LIST: The class of @student is #{@student.class}") %>
<% logger.info("LIST: The class of @assignments is #{@assignments.class}") %>
<% logger.info("LIST: @student is #{@assignments}") %>
<% logger.info("LIST: @assignments is #{@assignments}") %>
<% for assign in @assignments %>
<tr>
<td><%= assign.student %></td>
<td><%= assign.description %></td>
<td><%= assign.whendone %></td>
</tr>
<% end # end the "for" %>
</table>
</body>
</html>
Any suggestions?
【问题讨论】:
标签: ruby-on-rails views