我正在使用Ruby on Rails 4.0.0。
在app/controllers/api/v1/glossary_controller.rb中:
class Api::V1::GlossaryController < ApplicationController
def index
render json: Glossary.all
end
end
在app/models/api/v1/glossary.rb中:
class Api::V1::Glossary < ActiveRecord::Base
table_name "glossary"
@glossary = self.all
end
以及应用程序/模型/api/v1.rb
module Api::V1
def self.table_name_prefix
'api_v1_'
end
end
路线如下:
Feta::Application.routes.draw do
namespace :api, defaults: {format: 'json'} do
namespace :v1 do
get "glossary" => "glossary#index"
end
end
end
数据库表名为"api_v1_glossary"。
和错误:未初始化的常量 Api::V1::Glossary::当我定义时,模型中的词汇表.rb @glossary...
编辑:我已经从微不足道的地方更新了,但是让它使用词汇表而不是词汇表的问题仍然存在。 @glossay.to_yaml
什么也不返回。 @glossary
回来nil
.
我不确定那@glossary
行应该做什么,但你需要在那里引用self
或Api::V1::Glossary
。
class Api::V1::Glossary < ActiveRecord::Base
table_name = "glossary"
@glossary = self.all
end
根据 RailsGuides 的说法,您必须使用 self.table_name = 'glossary'
设置表名,但我不确定在给定的示例中这是否足够。