ruby-on-rails - 属于关联工作在本地但不在生产服务器上
问题描述
我有一张student
桌子和一张classrooms
桌子。我的学生索引视图中有一行代码
<td><%= student.classroom.classroom_name %></td>
我正在尝试显示与student.classroom_id
. 此代码适用于使用 sqlite3 的本地开发环境,但是当我使用 MySQL 将代码复制到我的 cPanel 网络服务器时,我收到此错误
undefined method `classroom_name' for nil:NilClass
有谁知道我的代码有什么问题?
我已将所有代码从本地安装复制到服务器。我在迁移中添加了一个外键。我已经rails db:migrate
在服务器上运行。
教室.rb
class Classroom < ApplicationRecord
validates :classroom_name, presence: true, length: { minimum: 3, maximum: 50}
has_many :students, dependent: :destroy
has_many :families, through: :students
end
学生.rb
class Student < ApplicationRecord
enum status: [ :Active, :Deactive ]
belongs_to :classroom, optional: true
has_many :student_group_assignments
has_many :student_groups, through: :student_group_assignments
end
nil:NilClass` 的cPanel 服务器undefined method
教室名称'出错,但它确实适用于 rails install 上的本地 ruby。
解决方案
根据错误,您正在进行生产,显然,表中没有classroom
该学生的条目。但是,如果是这种情况,您应该使用
<td><%= student.classroom.try(:classroom_name) %></td>
推荐阅读
- html - 如何在离子内容滚动时自动隐藏按钮并在滚动停止时显示
- angular - 创建新的 Angular 项目时出错
- apache - Apache 2.4 (RedHat) - .well-known - 403 禁止
- android - 无法解析来自“Mono.Android”的“System.Void Android.Runtime.ResourceDesignerAttribute::.ctor(System.String)”引用
- python - 如何从熊猫数据框中提取列表或字典中的非 NA 值
- php - PHP FIle not found when i submit a form
- r - Transform tibble to data frame with column headers
- php - 将变量从一个 php 文件发送到另一个文件并在第三个文件中显示变量值
- javascript - AmCharts Serial Chart: Center-align label under the axis points
- random - 在 R 中使用混合 logit 模型进行预测