Rails CouchDB相关模型没有看到对方

时间:2011-02-18 20:19:34

标签: ruby-on-rails couchdb

拥有此代码:

模型

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;我已经尝试过指定类名但是同样的结果,并且类名与关系名称相同。

提前感谢任何线索!

1 个答案:

答案 0 :(得分:2)

萨尔瓦多 - 拉尔斯对复数规则做出了某些假设,即它们是英文的。虽然我对Rails中的couchDB api不是很熟悉,但是从NameError看来Rails正在尝试复数Consultas - &gt; Consultum

这是一篇关于其他开发人员与非英语模型名称和ActiveRecord相关的经验的blog帖子......很有可能,你在ActiveModel中遇到同样的事情 - &gt; SimplyStored ::长椅