2016-02-16 5 views
0

у меня есть такие модели:Вложенные атрибуты. Поле не обновляет

class Listicle < ActiveRecord::Base 
... 
has_many :listicle_sticker_tags, -> { order(listicle_sticker_id: :asc) }, class_name: 'ListicleStickerTag', dependent: :destroy 
    accepts_nested_attributes_for :listicle_sticker_tags, allow_destroy: true 
end 


class ListicleStickerTag < ActiveRecord::Base 
    belongs_to :listicle 
    belongs_to :listicle_sticker 
end 

И контроллер имеет:

class ListiclesController < ApplicationController 

def basic_listicle_params 
    params.require(:listicle).permit :item_separator_color, :vote_count_color, :arrows_default_color, 
            :show_shareaholic, :arrows_on_hover_color, :arrows_selected_color, :items_order, 
            :show_stickers, :intro, :footer, :show_vote_feedback, :stickers_for_each_item, 
            on_load_scripts_attributes: [:id, :script, :position, :_destroy], 
            questions_attributes: [:body, :_destroy, :id], 
            listicle_sticker_tags_attributes: [:id, :listicle_sticker_id, :text, :_destroy] 

.... 
end 

И вид:

.form-group 
    [email protected]_questions.each do |question,idx| 
    =form.label 'ID:' 
    = question.id 
    =form.label 'Title:' 
    = question.body.present? ? question.title : "Item #{idx + 1}" 
    - @stickers.each do |sticker| 
     = sticker.id 
     = sticker.text 


     = form.fields_for :listicle_sticker_tags do |u| 
     .nested-fields.form-group 
      .field 

      = link_to_remove_association u, class: %(text-danger pull-right) do 
       %i.glyphicon.glyphicon-remove-circle{style:"position: relative; top: 25px; right: 2px; font-size: 18px;"} 
      = u.text_area :text, rows:4, class: %w(form-control) 
      = u.hidden_field :listicle_sticker_id, :value => sticker.id 
     .links 
     %br 
     =link_to_add_association 'Add script', form, :listicle_sticker_tags, class: %w(btn btn-primary pull-right) 

Проблема: listicle_sticker_id выиграл 't обновляется и возвращается как ноль. , как вы видите, она даже не обновляется:

SQL (0.6ms) INSERT INTO `listicle_sticker_tags` (`listicle_id`, `text`) VALUES (39, 'hhhhhhhhhhhhhh') 
    (4.7ms) COMMIT 
    Rendered listicles/update.js.erb (0.4ms) 

выход консоли выглядит следующим образом:

2.1.1 :067 > ListicleStickerTag.where(listicle_id: 39) 
    ListicleStickerTag Load (0.9ms) SELECT `listicle_sticker_tags`.* FROM `listicle_sticker_tags` WHERE `listicle_sticker_tags`.`listicle_id` = 39 
=> #<ActiveRecord::Relation [#<ListicleStickerTag id: 35, listicle_id: 39, text: "hhhhhhhhhhhhhh", listicle_sticker_id: nil>]> 

Что мне не хватает, чтобы сделать listicle_sticker_id, чтобы быть в курсе представить?

+0

Что входит в переменную '@ stickers'? Являются ли они наклейками из базы данных или являются ли они новыми, неустановленными записями? –

+0

Каковы параметры в журнале для этого запроса? у них есть собственный listicle_sticker_id? – faron

ответ

0

Перезагрузка сервера после изменения сильных параметров помогла в моем случае.

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