2011-02-18 40 views
1

有了這個代碼:Rails的CouchDB的相關車型沒有seing對方

模式

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 

錯誤

我不能列出這樣consultas。

/pacientes /很長paciente ID CouchDB的風格ID/consultas

我可以看到@paciente對象存在,(我可以檢查它),但我不能從那裏達到consultas。

因爲我得到:

NameError in ConsultasController#index 
uninitialized constant Consultum 

在這條線:

@ paciente.consultas.all < - 我無法達到consultas

過去幾天一直一遍遍這,順便說一句我正在使用SymplyStored訪問CouchDb;我已經嘗試指定類名稱,但是相同的結果,並且類名稱與關係名稱相同。

在此先感謝您的任何線索!

回答

2

薩爾瓦多 - Rails對複數規則作了一定的假設,即他們是英文的。雖然我對Rails中的couchDB api不是很熟悉,但從NameError看來,Rails正試圖複製Consultas - >Consultum

這是一個blog一篇關於有關非英語型號名稱和ActiveRecord的......機會是,你對同樣的事情在運行加載ActiveModel其他開發人員的經驗 - > SimplyStored ::沙發

+0

是的,這是正是它;我全部翻譯成英文。 – 2011-02-18 21:34:15