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...