У меня следующий код на мой взгляд:рубин на рельсах Params равна нулю
<%= 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
передаются к действию mentiond в form_for
выше. Но если я не выберет никаких переключателей и cilck при отправке, он выдаст ошибку (нулевой объект, возвращаемый вам, возможно, ожидает экземпляр массива). Тем не менее, я хочу проверить, нет ли параметра в моем действии и перенаправить на другой вид. Ниже приведен код для действия
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
Почему бросали нулевую ошибку объекта, даже если им проверить его, прежде чем руки? Пожалуйста, помогите
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"}
показать нам ошибку – keymone
@keymone здесь ошибка NoMethodError в AuthorizationController # command_domain_selected У вас есть нулевой объект, если вы этого не ожидали! Возможно, вы ожидали экземпляр массива. Ошибка при оценке nil. [] Rails.root: c:/Final/authorize Трассировка приложения | Рамочная трасса | Full Trace app/controllers/authorization_controller.rb: 43: in 'command_domain_selected ' – user1455116
В качестве стандартного соглашения по умолчанию должен быть выбран один из переключателей. –