Rails 4:有时记录会保存,有时记录不会保存吗?

时间:2015-05-09 19:25:29

标签: ruby-on-rails database controller parameter-passing

我发生了一件奇怪的事情。我有一个模型调用配方has_many:信息和:方向。当我尝试保存@recipe(请参阅我的控制器)时,其中有许多:信息和:方向;有时候它有效,有时它不会在我没有改变任何东西的源代码。

此外,:信息始终保存;问题似乎只是关于:方向

这是我的控制器:

    def new
        @recipe = current_user.recipes.new
    end

    def create
        @recipe = current_user.recipes.new(recipe_params)

        if @recipe.save
            redirect_to @recipe, notice: "Successfully created new recipe"
        else
            render 'new'
        end
    end     
    private

    def recipe_params
        params.require(:recipe).permit(:category_id, :title, :description, informations_attributes: [:id, :title, :url, :_destroy], directions_attributes: [:id, :title, :url, :step, :_destroy])
    end
end

当我尝试从我的表单中保存时,这里是params:

  

参数:{" utf8" =>"✓",   " authenticity_token" = GT;" WFA + WTI + C3hnvscAC1O922EYlssJE3zAbEmmqMbmR + 5krb0b17fkWhsXVAW1aFcom8x11uGqGO6drQudGhdcvA ==&#34 ;,   "食谱" => {"标题" =>"测试","描述" =>"测试&#34 ;," category_id" =>" 3",   " informations_attributes" => {" 1431197959831" => {"标题" =>"测试&#34 ;,   " url" =>" dede"," _destroy" =>" false"}," 1431197959835" = > {"标题" = GT;" DED&#34 ;,   " url" =>" dede"," _destroy" =>" false"}},   " directions_attributes" => {" 1431197963709" => {"标题" =>"德德&#34 ;,   " url" =>" dede"," step" =>" de"," _destroy" => ;"假"},   " 1431197963712" => {"标题" =>" ded"," url" =>" ded&#34 ;," step" =>" ded",   " _destroy" =>" false"}}},"提交" =>"创建主题"}

Shema:

  create_table "directions", force: :cascade do |t|
    t.text     "step"
    t.integer  "recipe_id"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string   "url"
    t.string   "title"
  end


  create_table "information", force: :cascade do |t|
    t.string   "url"
    t.integer  "recipe_id"
    t.datetime "created_at",                            null: false
    t.datetime "updated_at",                            null: false
    t.integer  "cached_votes_total",      default: 0
    t.integer  "cached_votes_score",      default: 0
    t.integer  "cached_votes_up",         default: 0
    t.integer  "cached_votes_down",       default: 0
    t.integer  "cached_weighted_score",   default: 0
    t.integer  "cached_weighted_total",   default: 0
    t.float    "cached_weighted_average", default: 0.0
    t.string   "title"
  end


  create_table "recipes", force: :cascade do |t|
    t.string   "title"
    t.text     "description"
    t.integer  "user_id"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
    t.integer  "category_id"
  end

感谢您的帮助!

0 个答案:

没有答案
相关问题