2013-10-03 3 views
0

Пожалуйста, помогите мне выяснить, что я делаю неправильно здесь! Я использую s3_direct_upload для загрузки базового изображения в Amazon S3, а затем POST для создания записи. На вкладке «Сеть» (firebug) я вижу, что он POST'd. Однако я не уверен, почему параметры не добавляются в БД.Rails - Params не добавляются к модели?

Это то, что я получаю обратно:

Started POST "/choices" for 127.0.0.1 at 2013-10-02 17:36:10 -0700 
    Processing by ChoicesController#create as */* 
    Parameters: {"url"=>"https://mybucket.s3.amazonaws.com/uploads%2F1380760569802-bneiuk2ghf4-22e59d1c8959be731bc71e31f0a9d7c6%2Fslide0003_image002.jpg",   
    "filepath"=>"/uploads%2F1380760569802-bneiuk2ghf4-22e59d1c8959be731bc71e31f0a9d7c6%2Fslide0003_image002.jpg", 
    "filename"=>"slide0003_image002.jpg", 
    "filesize"=>"73930", 
    "filetype"=>"image/jpeg", 
    "unique_id"=>"bneiuk2ghf4", 
    "choice"=>{ 
     "image"=>"https://mybucket.s3.amazonaws.com/uploads%2F1380760569802-bneiuk2ghf4-22e59d1c8959be731bc71e31f0a9d7c6%2Fslide0003_image002.jpg" 
    } 
    } 
    (0.3ms) BEGIN 
    (0.4ms) ROLLBACK 
    Rendered choices/create.js.erb (0.1ms) 
    Completed 200 OK in 16ms (Views: 6.2ms | ActiveRecord: 0.6ms) 

 

# app/controllers/choice.rb 
    def create 
    @choice = Choice.create(choice_params) 
    end 

def choice_params 
    params.require(:choice).permit! 
end 

Тогда моя форма (некоторые HTML опущены для краткости):

#app/views/new.html.erb 
    <%= s3_uploader_form callback_url: choices_url, callback_param: "choice[image]", id: "s3-uploader" do %> 
     <%= file_field_tag :file, multiple: true %> 
    <% end %> 

Любая помощь будет большим !

+0

Что вы ожидаете от '' выбор'' '' '' требует '{" image "=>" https: // ... "}' к вам. Ожидает ли ваша модель «Выбор» это одно поле? Ваша модель откатывается назад – Cristopher

ответ

1

С «ROLLBACK» Похоже, что вы не спасаете запись. Может быть, некоторая валидация не выполняется. Изменение

@choice = Choice.create(choice_params) 

в

@choice = Choice.create!(choice_params) 

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

+0

Так оно и было. Проверки не выполнялись; Я забыл удалить старую ненужную проверку. – Dodinas

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