很想听听别人对此的看法。我的rails应用程序连接到开发数据库,我的所有模型都可以正常工作,除了一个。就应用程序而言,“消息”模型不存在,即使表已创建并且可以在schema.rb文件中看到。有没有人遇到过这个?我已经检查了所有模型文件名的拼写,所以除非我完全忘记了,否则我认为不是这样。模型看起来像这样:
class Message < ActiveRecord::Base
has_paper_trail
attr_accessible :content, :prescription, :type, :to, :sent_at, :created_at, :updated_at
has_many :adherences
has_many :patients, :through => :adherences
validates :content, presence: true, length: { maximum: 160 }
accepts_nested_attributes_for :patients
end
Rails控制台输出显示任何内容:
1.9.3-p194 :001 > Message.all
NoMethodError: undefined method `all' for Message:Class
from (irb):1
from /usr/local/rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
from /usr/local/rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
from /usr/local/rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
1.9.3-p194 :004 > Message.inspect
"Message"
db创建了Messages表。 schema.rb(缩写):
ActiveRecord::Schema.define(:version => 20130613020005) do
create_table "messages", :force => true do |t|
t.string "content"
t.string "type"
t.string "prescription"
t.string "to"
t.datetime "sent_at"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
我唯一能想到的是“消息”模型存在于我正在使用的某个宝石中的某处或其依赖项中。但它突然工作得很好,突然之间,不是。
以下是最近安装的宝石:
group :development, :test do
gem 'sms-spec'
gem 'rb-fsevent', '0.9.1', :require => false
gem 'growl', '1.0.3'
gem 'better_errors'
gem 'meta_request'
gem 'binding_of_caller'
gem 'guard-spork', '1.2.0'
gem 'childprocess', '0.3.6'
gem 'spork', '0.9.2'
gem 'shoulda-matchers'
end
如果有人碰到过这个或类似的东西,我会有兴趣听听你的情况。关联和其他可能存在其他问题,但这似乎不是我能说的问题。
答案 0 :(得分:0)
据我所知,growl
gem中存在冲突的“消息”方法。我需要找到一个解决方法或删除该gem。