Question

Je suis bloqué sur someothing probablement incroyablement stupide, mais je ne peux pas trouver mon problème. J'utilise Rails 3.0.3 et Ruby 1.9.2 sur une machine ubuntu.

J'essaie de simplement définir une variable d'instance dans mon contrôleur, et l'utiliser pour créer un formulaire sur un nouveau modèle de vue, mais il est à venir nul à mon avis. Je sais que les variables d'instance définies dans le contrôleur sont censés être copiés dans la vue, mais ici son ensemble à zéro. Quelqu'un peut-il voir ce que je fais mal? Voici mon message d'erreur:

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 / views / urls / new.html.erb

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

app / modèles / 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
Était-ce utile?

La solution

Url est un mot réservé, j'ai peur.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top