Rails没有加载model.rb文件

时间:2016-11-18 17:24:55

标签: ruby-on-rails ruby ruby-on-rails-3

我不知道为什么,但由于某种原因,我的嵌套关联没有得到rails的尊重。

我的学生班有嵌套关联:地址,考试

地址关联正常。测试关联与地址关联相同,不起作用。虽然我可以成功创建和编辑测试实例,但它们不会经过模型中定义的验证检查,也不会实现我在模型中指定的搜索范围搜索功能。

以下是学生模型:

class Student < ActiveRecord::Base
  unloadable

  validates :name, presence: true, length: {maximum: 50}

  has_many :addresses, :dependent => :destroy
  has_many :tests, :dependent => :destroy

  accepts_nested_attributes_for :addresses,
    :reject_if => :all_blank,
    :allow_destroy => true
  accepts_nested_attributes_for :tests,
    :reject_if => :all_blank,
    :allow_destroy => true
end

这是地址模型(有效):

class Address < ActiveRecord::Base
  belongs_to :student
  validates :address, presence: true, length: {maximum: 80}

def self.ransackable_attributes(auth_object = nil)
    ['county', 'zip', 'address']
  end
end

这是(基本上)相同的测试模型(不起作用):

class Test < ActiveRecord::Base
  belongs_to :student
  validates :name, length: {maximum: 40}

  def self.ransackable_attributes(auth_object = nil)
    ['score', 'date']
  end
end

它完全忽略了验证以及ransack功能。虽然一切都运行没有错误,但我能够输入我想要的任何内容,即使它已经过了有效的长度,并且它不会抛出任何错误消息。

我觉得我没有正确地创建我的模型或其他东西,Rails不知道它在那里?

1 个答案:

答案 0 :(得分:0)

Test,我相信是minitest框架中的模块。避免命名模型Test。事实上,test是Rails中的保留关键字。尝试重命名模型的名称并重试。