簡體   English   中英

Rails應用僅向數據庫添加“ created_at”和“ updated_at”

[英]Rails app only adding “created_at” and “updated_at” to DB

(使用sqlit3)

我剛剛成功完成了表單提交工作-但是,尚未提交所有字段。 僅Rails的默認“ updated_at”和“ created_at”值是。

代碼在這篇文章中。

您需要permit控制器可用於更新/創建的屬性。 在您的情況下,您需要允許字段namerecipe

在您的控制器方法中,按如下所示更改recipe_params

def recipe_params
    recipe_params = params.require(:recipe).permit(:name,:recipe)
  end

然后在您的create方法中,調用方法recipe_params而不是直接使用params[:recipe]創建create 即:

 def create
    @recipe = Recipe.create(recipe_params)
    if @recipe.save
        redirect_to recipe_new_path
    else
        reload_page
    end
 end

這應該工作。

將此添加到配方控制器

def recipe_params
 recipe_params = params.require(:recipe).permit(:name,:recipe)
end

此方法允許您選擇要添加的參數

照常創建動作

def create
 @recipe = Recipe.create(recipe_params)
 if @recipe.save
    redirect_to recipe_new_path
 else
    reload_page
 end
end

那么您的表單應如下所示,注意:recipe符號

<%= form_for :recipe do |f| %>
<%= f.label :name, "Recipe Name:" %>
<%= f.text_field :name %>
<br>
<%= f.label :recipe, "Recipe Description:" %>
<%= f.text_field :recipe %>
<br>
<%= f.submit %>
<% end %>

請注意,在表單中,您使用的是@recipe而不是:recipe ,因此導致缺少參數錯誤消息,只需確保控制器和表單中的變量相同即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM