0

У меня следующий код на мой взгляд:рубин на рельсах 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"} 
+2

показать нам ошибку – keymone

+0

@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

+0

В качестве стандартного соглашения по умолчанию должен быть выбран один из переключателей. –

ответ

0

Это предположение, но может быть, что params[:command_selected] равна нулю, которые вы не проверяла.

+0

Большое вам спасибо :) – user1455116

Смежные вопросы