2011-12-05 6 views
0

私は現在、データジェネレータを構築中です。最初に、PESEL(生年月日に基づいてポーランドの個人IDの種類)ジェネレータを実装したいと思っています - 私は開始と終了の生年月日の間に一時的なデータを入力したい - 私はデータベースに保存したくないI私のPESELコントローラである。ここ )私はそれを行う必要があります:データベースレコードではなく配列による変数の受け渡し方法は?

def new 
    @pesel = Array.new 
    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @pesel } 
    end 
    end 

が、私は「NilClassため未定義のメソッド `MODEL_NAME」:クラス」持っている?エラーが - それはsolvintのとにかく良い方法です。この場合、 ?私は、一時的な変数を使うことは 'The Ruby Way'ではなく、私の解決策が間違っている場合は、正しいものを提案してください。 (???例えば、ハッシュこれはクッキーを通じてvarsのヘルパーメソッドを渡す)

がここにスタックトレースです(私は思う):

Started GET "/pesel" for 127.0.0.1 at 2011-12-05 16:18:20 +0100 
    Processing by PeselController#new as HTML 
Rendered pesel/new.html.erb within layouts/application (1513.9ms) 
Completed 500 Internal Server Error in 1793ms 

ActionView::Template::Error (undefined method `model_name' for NilClass:Class): 
    1: <%= simple_form_for @pesel do |f| %> 
    2: <%= f.input :date_of_birth, :as => :date, :start_year => Date.today.year - 90, 
    3:         :end_year => Date.today.year - 12, :discard_day => true, 
    4:         :order => [:month, :year] %> 
    app/views/pesel/new.html.erb:1:in `_app_views_pesel_new_html_erb__708648673_90148530' 
    app/controllers/pesel_controller.rb:7:in `new' 

Rendered /home/ofca/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (5.6ms) 
Rendered /home/ofca/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (4.0ms) 
Rendered /home/ofca/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (17.6ms) 
+1

このエラーについてもう少し詳しくお聞かせください。完全なスタックトレースを教えてください。これは通常、どのコード行が実際に壊れているかを示しています。また、どこか重要ではないことを伝えています。どこかには何もないはずはない。これを引き起こしている可能性について考えてみてください。 –

+1

http://ruby-doc.org/core-1.9.2/Struct.htmlをチェックすると、モデルの作成が簡単になります – Bohdan

答えて

1

form_forは、特定のプロパティは、model_nameとして、あなたはそれを渡すオブジェクトのために存在を前提としています。

  1. 代わりのform_for @peselを使用して、ちょうどform_tagおよび関連_tagメソッドを使用します。
  2. Peselモデルを使用します。モデルはではなくテーブルであり、モデルはデータベースに何も書き込む必要はありません。 ActiveRecordから継承しないでください。model_nameと、form_forが期待するその他のフィールドを指定してください。
関連する問題