私のビューには次のコードがあります。
<%= form_for :command_selected, :method => "get", :url => {:action => "command_domain_selected"} do |f| %>
<%= f.submit "Make Deployment" %>
<%= f.radio_button :domain, '1dev-den' %> <%= label :domain, '1dev-den'%><br />
<%= f.radio_button :domain, '2dev-den' %> <%= label :domain, '2dev-den'%><br />
submit (make deployment)
ボタンをクリックするparameters
とsubmit button
、上記radio button
のアクションに渡されform_for
ます。しかし、ラジオボタンを選択せず、送信時に cilck すると、(nil オブジェクトが返され、配列のインスタンスが期待されている可能性があります) エラーがスローされます。ただし、アクションでパラメーターが nil であるかどうかをテストし、他のビューにリダイレクトしたいと考えています。以下は、アクションの私のコードです
def command_domain_selected
if(params[:command_selected][:domain].nil?)
respond_to do |format|
format.html{redirect_to wrong_selection_path}
end
else
@command_selected = params[:commit]
@domain_selected = params[:command_selected][:domain]
end
end
事前にチェックしているのに、なぜnilオブジェクトエラーがスローされるのですか? 助けてください
Update: Below is the error i'm getting
NoMethodError in AuthorizationController#command_domain_selected
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]Rails.root: c:/Final/authorize
Parameters:
{"utf8"=>"✓", "commit"=>"Make Deployment"}