2017-11-14 3 views
1

私はvehicalsを作成し、それに対応したルートを定義するためのフォームを持っている、しかし、それは常に例外TypeErrorエラーを与え、私はそれが間違ってやっていると思いますが、次のように修正してくださいコードです:それについてフォームのレール4のTypeErrorエラーを解決するにはどうすればよいですか?

<%= form_for @vehical, url_for(:action => :create, :controller => 'vehicals') do |vehical| %> 
<div> 
<%= vehical.label 'house power'%> 
    <%= vehical.text_field 'horse_power'%> 
</div> 
    <div> 
     <%= vehical.label 'brand' %> 
     <%= vehical.text_field 'brand' %> 
    </div> 
    <div> 
     <%= vehical.label 'model' %> 
     <%= vehical.text_field 'model' %> 
    </div> 

    <%= vehical.submit 'create' %> 
<% end %> 

ルート:

match '/vehicals/create', :to => 'vehicals#create', :as => 'vehicals_create', :via => :post 

エラー:事前に

ActionView::Template::Error (no implicit conversion of Symbol into Integer): 
    1: 
    2: <%= form_for @vehical, url_for(:action => :create, :controller => 'vehicals') do |vehical| %> 
    3: <div> 
    4: <%= vehical.label 'house power'%> 
    5: <%= vehical.text_field 'horse_power'%> 

おかげ

答えて

1

アクション値のシンボルを渡しています。あなたは、文字列を必要とする:

url_for(action: 'create', controller: 'vehicals') 

あなたもこれを行うことができます、しかし、あなたはそのルートが設定されていない場合は、ルートヘルパーを微調整する必要がある場合があります

form_for @vehical, create_vehicle_path, method: :post 
関連する問題