2015-01-31 2 views
0

У меня есть Params хэш, который выглядит следующим образом:рельсы не может получить доступ к значению в Params хэш

puts contact_params 
=> {"classifiable_classification_codes_attributes"=>{"0"=>{"id"=>"5", "relateds_attributes"=>{"0"=>{"classifiable_id"=>"6", "id"=>"15"}}}}} 

Так что ожидать, когда я делаю это contact_params [ «classifiable_classification_codes_attributes»], я впоследствии получить { "0 "=> {" ID "=>" 5" ...

на самом деле, это именно то, что происходит в консоли:

> contact_params["classifiable_classification_codes_attributes"] 
=> {"0"=>{"id"=>"5", "relateds_attributes"=>{"0"=>{"classifiable_id"=>"6", "id"=>"15"}}}} 

Однако в контроллере, когда я пытаюсь сделать это, возвращает значение nil, как бы классифицируемое _classification_codes_attributes не является ключом. Я также пробовал форму символа: classifiable_classification_codes_attributes. Но ни один из них не возвращает никаких результатов.

Что я могу делать неправильно?

ответ

0

Я предполагаю, что это может быть сильная проблема параметров, в этом случае вам нужно добавить что-то вроде

private 
def my_params 
    params.require(:classifiable_classification_codes_attributes).permit(: id, :relateds_attributes) 
end 

Подробнее на: http://edgeguides.rubyonrails.org/action_controller_overview.html#strong-parameters

+0

Даже после выполнения params.require (: контакт). allow (: classifiable_classification_codes_attributes,: id,: relateds_attributes), я все равно не могу получить значение. – Donato

+0

Можете ли вы разместить свой контроллер в исходном вопросе? –

+0

, и поскольку вы используете Strings, params.require также должен использовать Strings, моя ошибка используется всегда для использования символов. –

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