Как упростить этот вложенный параметр, включающий проверку? - PullRequest
2 голосов
/ 28 февраля 2012

В rails у меня есть этот флажок, где проверяемое значение должно быть истинным, если элемент включен в массив post.

- checked = (params[:comments] && params[:comments][:pictures] && params[:comments][:pictures].include?(comment.id))
=check_box_tag "comments[pictures][]", comment.id, checked

Проверенная часть выглядит очень некрасиво. Как отловить ошибку, если не заданы params [: comments] или params [: comments] [: pictures]? Я пытался

- checked = (params[:comments][:pictures].include?(comment.id)) || false

Но это не работает.

Ответы [ 2 ]

3 голосов
/ 28 февраля 2012

Я бы порекомендовал вам установить simple_form и использовать:

= simple_form_for @comment do |f|
  = f.association :pictures, :as => 'boolean'
0 голосов
/ 28 февраля 2012

Вы можете объединить хэш значений по умолчанию, и тогда вы будете уверены, что есть значение params [: comments] [: pictures] (в данном случае пустой массив):

params = {:comments => {:pictures => []}}.merge(params)
checked = params[:comments][:pictures].include?(comment.id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...