Pregunta

Estoy atrapado en algo que probablemente es increíblemente estúpido, pero no puedo encontrar mi problema. Estoy usando Rails 3.0.3 y Ruby 1.9.2 en una máquina Ubuntu.

Estoy tratando de configurar una variable de instancia en mi controlador y usarla para crear un formulario en una nueva plantilla de vista, pero está apareciendo nulo en mi vista. Sé que se supone que las variables de instancia establecidas en el controlador se copian a la vista, pero aquí está establecida en nil. ¿Alguien puede ver lo que estoy haciendo mal? Aquí está mi mensaje de error:

NoMethodError in Urls#new 

undefined method `model_name' for NilClass:Class

Extracted source (around line #1): 

1: <%= form_for @url do |f| %>
2:    <%= f.submit %>
3: <% end %>

App/Controllers/URLS_Controller.RB

class UrlsController < ApplicationController
  def new
    @url = Url.new
  end
end

app/vistas/urls/new.html.erb

<%= form_for @url do |f| %>
   <%= f.submit %>
<% end %>

aplicación/modelos/url.rb

# == Schema Information
# Schema version: 20110122002326
#
# Table name: urls
#
#  id         :integer         not null, primary key
#  long_url   :text
#  short_url  :string(255)
#  created_at :datetime
#  updated_at :datetime
#

class Url < ActiveRecord::Base
end

App/Controllers/Application_Controller.RB

class ApplicationController < ActionController::Base
  protect_from_forgery
end
¿Fue útil?

Solución

URL es una palabra reservada, me temo.

http://wiki.rubyonrails.org/rails/pages/reservedwords

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top