2011-01-22 6 views
0

私はおそらく信じられないほど愚かな何かについていますが、私は問題を見つけることができません。私はubuntuマシンでRails 3.0.3とruby 1.9.2を使用しています。私のビューでRailsのインスタンス変数がnilにならないのはなぜですか?

私は自分のコントローラにインスタンス変数を設定し、それを使って新しいビューテンプレートにフォームを作成しようとしていますが、私のビューではnilになっています。コントローラに設定されたインスタンス変数はビューにコピーされるはずですが、ここではnilに設定されています。誰かが私が間違っているのを見ることができますか?ここに私のエラーメッセージは次のとおりです。

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

アプリ/コントローラ/ urls_controller.rb

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

アプリ/ビュー/のURL/new.html.erb

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

アプリ/モデル/ 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 

答えて

3

URLは予約語です。恐れ入りますが、

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

+0

@!#$!ありがとう..!それが修正されるかどうかを確認します。 – noli

+0

モデル名とコントローラ名をUrlRedirectに変更しましたが動作しませんでした。私は@urlインスタンス変数を@rurlに変更し、うまくいきました。再度、感謝します – noli

関連する問題