Как получить доступ к скрытому полю в форме в значении params, но оно говорит о неожиданном конце строки - PullRequest
0 голосов
/ 26 октября 2019

У меня есть скрытое поле, которое я хочу разрешить своему контроллеру предложений.

Когда я отправляю форму, она говорит:

unexpected line end for proposal_params

Я что-то здесь упускаю?

_form.html.haml:

%fieldset.col-md-12 = form.label t('.select_tags'), { class: 'tags-label' }
  = form.hidden_field :tags, { class: 'hidden_tags' }

контроллер:

def proposal_params 
  params.require(:proposal).permit(:title, :description, :target_audience,
                                   :details, :pitch, :difficulty, :track_id, 
                                   :main_tag_id, comments_attributes: %i[body proposal_id person_id], 
                                   speakers_attributes: %i[person_id id], :tags) 
end

Хотя я могу получить доступ к значению, выполнив params[:proposal][:tags].

1 Ответ

0 голосов
/ 27 октября 2019

В Ruby при вызове методов, которые принимают позиционные и ключевые аргументы, вы ДОЛЖНЫ размещать аргументы ключевых слов последними:

def foo(*args, **kwargs); end
foo(1, 2, 3, bar: 'baz')
foo(bar: 'baz', 1, 2, 3) # syntax error
params.require(:proposal).permit(:title, :description, :target_audience,
                                   :details, :pitch, :difficulty, :track_id, 
                                   :main_tag_id, :tags,
                                   comments_attributes: %i[body proposal_id person_id], 
                                   speakers_attributes: %i[person_id id])
...