24/07/2013, 14:13
|
| | | Fecha de Ingreso: junio-2009 Ubicación: Colombia
Mensajes: 288
Antigüedad: 15 años, 5 meses Puntos: 12 | |
Problema con Rails y mongoDB: mongoid y un query que no retorna nada Hola a todos, agradezco su ayuda, He hecho de todo para solucionar el siguiente problema:
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...
__________________ Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-
Última edición por calichecal; 24/07/2013 a las 14:23 |