Estoy intentando mostrar un listado de documentos (0.0.0.0:3000/tipocontenidos/index) que esta en una colección en una base de datos mongoDB, pero la salida me arroja:
Código:
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)
Este es mi controlador, el cual genere con scaffold_controller
Código:
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
En mi base de datos mongodb ya tengo un documento en la colección que quiero traer a la vista, pero tal parece que el Modelo no esta trayendo el listado. (Osea la instrucción "Tipocontenido.all" en el controlador que muestro arriba)
Ya intente todo inclusive utilizando scope en el modelo.
Este es mi modelo:
Código:
class Tipocontenido include Mongoid::Document store_in collection: "ctipocontenido" field :nombretipo, type: String has_one :contenido embeds_many :seccion # lo ultimo que en intentado, pero no me trae ni un solo documento. (Solo tengo uno) scope :todos, where(nombretipo: "Colores Suaves 3 partes") end
Estoy trabajando con:
1. Ruby 1.9.3p448
2. Rails 3.2.13
3. Rake version 10.1.0
4. MongoDB shell version: 2.2.3
5. mongoid 3.1.2
Mi documento en mongodb:
Código:
> 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"
}
]
}
]
}
Y por ultimo les muestro mi archivo gemfile:
Código:
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'
Agradezco sus recomendaciones y soluciones...

Se que puede ejecutarse con
, también sirve mucho para trastear el proyecto con el contenido de su BD, crear bases de datos desde allí, en fin, debe tener muchas otras utilidades. 

