我有一个问题,我一直在尝试用haml显示一个视图,但是却抛出了这个:
Started GET "/tipocontenidos/index" for 127.0.0.1 at 2013-07-23 17:22:36 -0500
Processing by TipocontenidosController#index as HTML
MOPED: 127.0.0.1:27017 COMMAND database=admin command={:ismaster=>1} (30.4270ms)
MOPED: 127.0.0.1:27017 QUERY database=cms_monrails_development_crud_bd collection=ctipocontenido selector={} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (82.3016ms)
Rendered tipocontenidos/index.html.haml within layouts/application (126.7ms)
Completed 500 Internal Server Error in 187ms
ActionView::Template::Error (undefined method `tipocontenido_path' for #<#<Class:0x000000026ee6f8>:0x000000027c4528>):
8:
9: - @tipocontenidos.each do |tipocontenido|
10: %tr
11: %td= link_to 'Show', tipocontenido
12: %td= link_to 'Edit', edit_tipocontenido_path(tipocontenido)
13: %td= link_to 'Destroy', tipocontenido, :method => :delete, :data => { :confirm => 'Are you sure?' }
14:
app/views/tipocontenidos/index.html.haml:11:in `block in _app_views_tipocontenidos_index_html_haml__2795259947167794129_19628380'
app/views/tipocontenidos/index.html.haml:9:in `_app_views_tipocontenidos_index_html_haml__2795259947167794129_19628380'
app/controllers/tipocontenidos_controller.rb:7:in `index'
Rendered /home/stivenson/.gem/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.1ms)
Rendered /home/stivenson/.gem/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.9ms)
Rendered /home/stivenson/.gem/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (7.1ms)
这是我的控制器,(我用“scaffold_controller”生成了这个控制器):
class TipocontenidosController < ApplicationController
# GET /tipocontenidos
# GET /tipocontenidos.json
def index
@tipocontenidos = Tipocontenido.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @tipocontenidos }
end
end
# GET /tipocontenidos/1
# GET /tipocontenidos/1.json
def show
@tipocontenido = Tipocontenido.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @tipocontenido }
end
end
# GET /tipocontenidos/new
# GET /tipocontenidos/new.json
def new
@tipocontenido = Tipocontenido.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @tipocontenido }
end
end
# GET /tipocontenidos/1/edit
def edit
@tipocontenido = Tipocontenido.find(params[:id])
end
# POST /tipocontenidos
# POST /tipocontenidos.json
def create
@tipocontenido = Tipocontenido.new(params[:tipocontenido])
respond_to do |format|
if @tipocontenido.save
format.html { redirect_to @tipocontenido, notice: 'Tipocontenido was successfully created.' }
format.json { render json: @tipocontenido, status: :created, location: @tipocontenido }
else
format.html { render action: "new" }
format.json { render json: @tipocontenido.errors, status: :unprocessable_entity }
end
end
end
# PUT /tipocontenidos/1
# PUT /tipocontenidos/1.json
def update
@tipocontenido = Tipocontenido.find(params[:id])
respond_to do |format|
if @tipocontenido.update_attributes(params[:tipocontenido])
format.html { redirect_to @tipocontenido, notice: 'Tipocontenido was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @tipocontenido.errors, status: :unprocessable_entity }
end
end
end
# DELETE /tipocontenidos/1
# DELETE /tipocontenidos/1.json
def destroy
@tipocontenido = Tipocontenido.find(params[:id])
@tipocontenido.destroy
respond_to do |format|
format.html { redirect_to tipocontenidos_url }
format.json { head :no_content }
end
end
end
这是我的模特:
class Tipocontenido
include Mongoid::Document
store_in collection: "ctipocontenido"
field :nombretipo, type: String
belongs_to :aparienciacontenido
embeds_many :seccion
end
我正在使用:
我不明白这个错误,因为我在我的MongoDB数据库中创建了一个文档“ctipocontenido”:
> db.ctipocontenido.find().pretty()
{
"_id" : ObjectId("51edfd3fddbc8d2622000001"),
"nombretipo" : "Colores Suaves 3 partes",
"seccion" : [
{
"_id" : ObjectId("51edfd3fddbc8d2622000002"),
"nombre" : "Encabezado",
"color" : "#e5e5e5",
"borde" : "1px solid red",
"etiqueta" : [
{
"_id" : ObjectId("51edfd3fddbc8d2622000003"),
"texto" : "Título",
"tipoletra" : "Verdana",
"tamanioletra" : "7",
"colorletra" : "#000000"
},
{
"_id" : ObjectId("51edfd3fddbc8d2622000004"),
"texto" : "Lema",
"tipoletra" : "Verdana",
"tamanioletra" : "6",
"colorletra" : "#000000"
}
]
},
{
"_id" : ObjectId("51edfd3fddbc8d2622000005"),
"nombre" : "Panel Izquierdo",
"color" : "#e5e5e5",
"borde" : "1px solid red",
"etiqueta" : [
{
"_id" : ObjectId("51edfd3fddbc8d2622000006"),
"texto" : "Título",
"tipoletra" : "Verdana",
"tamanioletra" : "7",
"colorletra" : "#000000"
},
{
"_id" : ObjectId("51edfd3fddbc8d2622000007"),
"texto" : "Lema",
"tipoletra" : "Verdana",
"tamanioletra" : "6",
"colorletra" : "#000000"
}
]
}
]
}
这是我的宝石文件:
source 'https://rubygems.org'
gem 'rails', '3.2.13'
gem 'execjs'
gem 'therubyracer'
gem 'sass'
gem "haml", '3.1.4'
gem 'haml-rails'
gem "mongoid", ">= 3.1.2"
gem 'rake' , '10.1.0'
gem 'rails3-generators'
# rails generate model Book --skip-migration --orm=mongomapper
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'jquery-ui-rails'
# gem 'jquery-ui-themes', '0.0.7'
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
PD:请原谅我的英语!!
非常感谢你! :)
答案 0 :(得分:1)
你在错误的地方寻找。错误是说您的config/routes.rb
文件有问题。 Rails无法确定哪个URL与控制器中的show
方法匹配。
显然rails generate scaffold_controller
不会编辑routes.rb
,因此您必须手动执行此操作并将以下代码添加到其中:
resources :tipocontenidos
这里有一个调试Rails路由的好工具:http://guides.rubyonrails.org/routing.html#listing-existing-routes