3
ユーザ作成時に値をフォームに保持したい(ユーザーがフィールドにエラーがあると、彼/彼女がすでに印刷したパラメータで)。Rails 3 - NilClassの未定義メソッド `model_name ':' new 'メソッドをレンダリングしようとするときのクラス
<legend>Order's creating</legend>
<%= form_for @order, :html => {:class => "form-horizontal"} do |f| %>
<%= field_set_tag do %>
<div class="control-group">
<%= f.label :number_of_order, "Number of order", :class => "control-label" %>
<div class="controls">
<%= f.text_field :number_of_order,
:class => "span2",
:placeholder => @everpresent_field_placeholder %>
</div>
</div>
<%= f.submit "Create", :class => "btn btn-large btn-success" %>
<% end %>
<% end %>
しかし、私が注文の数が間違って何かを入力し、私はそのようなエラーを取得し、「作成」をクリックします。だから私は、新しい秩序については、次の
コントローラ
class OrdersController < ApplicationController
...
def new
@everpresent_field_placeholder = "Fill that"
@order = Order.new
end
def create
order = Order.new(params[:order])
if order.save
flash[:success] = "Yay! Order created!"
else
render 'new'
flash[:error] = order.errors.full_messages.to_sentence :last_word_connector => ", ",
:two_words_connector => ", "
end
end
end
表示を行います:
NoMethodError in Orders#create
Showing .../app/views/orders/new.html.erb where line #3 raised:
undefined method `model_name' for NilClass:Class
Extracted source (around line #3):
1: <legend>Order's creating</legend>
2:
3: <%= form_for @order, :html => {:class => "form-horizontal"} do |f| %>
4: <%= field_set_tag do %>
5: <div class="control-group">
6: <%= f.label :number_of_order, "Number of order", :class => "control-label" %>
どうすればいいですか?
はい、あなたは正しいです!ありがとうございました! – ExiRe