param отсутствует или значение пустое: статус

Когда я пытаюсь отправить новый статус, я получаю следующее. У меня есть регистрационная форма, которая работает нормально, не знаю, что здесь происходит. Цените помощь.

def status_params
  params.require(:status).permit(:type_id, :user_id)
end

а также

def create
  @status = Status.new(status_params)

  respond_to do |format|
    if @status.save

Запрос

{"utf8"=>"✓",
       "authenticity_token"=>"gZPV4FfSm2eb+pGPbAAqI4zA/LHJiAsRkHdJar/aU3G63oBiaLr55zPoRv3K+7EmelN2Nofj/CTZ+qPtoYih5w==",
     "type"=>{"user_id"=>"3"},
     "type_id"=>"Ocular",
     "commit"=>"Create Status"}

Мой взгляд

  <div class="field">
    <%= f.label :user_id %><br>
    <%= select(:user_id, @user_options) %>
  </div>

  <div class="field">
    <%= f.label :type_id %><br>
    <%= select_tag :type_id, options_for_select(mg_types) %>
  </div>

person Stephen    schedule 12.05.2015    source источник
comment
Не могу понять, в чем проблема.   -  person Yan Foto    schedule 12.05.2015
comment
"type"=>{"user_id"=>"3"}, что за тип? Я думаю, что это должно быть "user_id"=>"3"   -  person pangpang    schedule 12.05.2015
comment
Тип позволяет мне выбирать из списка текущих пользователей, коллекций.   -  person Stephen    schedule 12.05.2015


Ответы (2)


Ваши параметры не в хэше status. Итак, попробуйте это -

 def status_params
   params.permit(:type_id, type[:user_id])
 end
person Amit Suroliya    schedule 12.05.2015
comment
это не сработало для меня. Я использую раскрывающийся список коллекции в этой форме. Вот и все, что отличается от формы статуса и формы регистрации. Может ли это быть проблема? - person Stephen; 12.05.2015

Я вижу здесь несколько проблем:

  1. Отправленные параметры не завернуты в хэш status.
  2. Вы публикуете хэш атрибута под названием type, который содержит user_id, что не соответствует вашим атрибутам из белого списка.
  3. Вы также публикуете атрибут с именем type_id, который содержит строку (а не идентификатор).
  4. Публикация как type, так и type_id конфликтует, потому что Rails установит эти атрибуты в модели Status, и один из них, вероятно, переопределит другой.
person zwippie    schedule 12.05.2015
comment
Почему тогда эти параметры для моей регистрационной формы будут работать? def Registration_params params.require(:registration).permit(:last, :first, :address, :city, :state, :postal, :country, :category) end - person Stephen; 12.05.2015
comment
@StephenCagigal, потому что эти параметры, завернутые в хэш registration, например - {:registration =›{:last =› 'last_name',:first_name =› 'first_name}} - person Amit Suroliya; 12.05.2015