拥有此代码:
模型
paciente.rb
class Paciente
include SimplyStored::Couch
has_many :consultas
end
consulta.rb
class Consulta
include SimplyStored::Couch
belongs_to :paciente
end
控制器
consultas_controller.rb
class ConsultasController < ActionController::Base
layout "application"
before_filter :get_paciente
def get_paciente
@paciente = Paciente.find(params[:paciente_id])
end
def index
@consultas = @paciente.consultas.all
end
def new
@consulta = @paciente.consultas.new
end
def create
@consulta = Consulta.create(params[:consulta])
if @consulta.save
redirect_to(@consulta, :notice => 'Consulta was successfully created.')
else
render :action => "new"
end
end
end
路线
的routes.rb
Example::Application.routes.draw do
resources :pacientes do
resources :consultas
end
end
错误
我不能列出这样的咨询。
/ pacientes / very long paciente id couchdb style id / consultas
我可以看到@paciente对象存在,(我可以检查它),但我无法从那里获得咨询。
因为我得到了:
NameError in ConsultasController#index
uninitialized constant Consultum
在这一行:
@ paciente.consultas.all&lt; - 我无法联系到顾问
最近几天一遍又一遍,顺便说一句,我使用SymplyStored访问CouchDb;我已经尝试过指定类名但是同样的结果,并且类名与关系名称相同。
提前感谢任何线索!
答案 0 :(得分:2)
萨尔瓦多 - 拉尔斯对复数规则做出了某些假设,即它们是英文的。虽然我对Rails中的couchDB api不是很熟悉,但是从NameError看来Rails正在尝试复数Consultas
- &gt; Consultum
。
这是一篇关于其他开发人员与非英语模型名称和ActiveRecord相关的经验的blog帖子......很有可能,你在ActiveModel中遇到同样的事情 - &gt; SimplyStored ::长椅