Rails上的插入查询错误

时间:2018-12-04 13:51:36

标签: sql ruby-on-rails ruby

因此,我尝试学习Ruby on Rails,并尝试将简单的产品创建代码编码到数据库中,但是Rails仅执行具有created_at和updated_at值的插入查询。这是我的products_controller的创建动作;

def create
    @product = Product.new(params[:product_params])

    @product.save
    redirect_to @product
end

private 
    def product_params
        params.require(:product).permit(:title, :price)
    end

这是我的new.html.erb在商品文件夹下;

<%= form_with scope: :product ,url:products_path, local: true do |form| %>
<p>
 <%= form.text_field :title %>
</p>

<p>
  <%= form.text_field :price %>
</p>

<p>
<%= form.submit %>

    <%end%>

这是Rails查找Rails Server的SQL查询

  

于2018-12-04 16:44:52 +0300开始为127.0.0.1发布POST“ /产品”   由ProductsController#create处理为HTML     参数:{“ utf8” =>“✓”,“ authenticity_token” =>“ 9Z4aFNpMv + uUPXx + LkHoOtYpWae / 8tIOCQ3Jt47AFScp / vVHTWI + G4d6CjHqBz6t5L5UR57I7Gh7bUWog1Dow”,“” =“”“” “ =>” 3434“},”提交“ =>”保存产品“}      (0.2ms)开始     ↳app / controllers / products_controller.rb:8     产品创建(0.3毫秒)插入productscreated_atupdated_at)值('2018-12-04 13:44:52','2018-12-04 13:44 :52')     ↳app / controllers / products_controller.rb:8      (5.4ms)提交     ↳app / controllers / products_controller.rb:8   重定向到http://localhost:3000/products/12   25ms内完成302次发现(ActiveRecord:7.4ms)

2 个答案:

答案 0 :(得分:2)

你不这样做

@product = Product.new(params[:product_params])

你做

@product = Product.new(product_params)

product_params是一种返回白名单params条目的方法。

答案 1 :(得分:0)

def创建  @product = Product.new(product_params)@ product.save redirect_to @product 结束 私人的 def product_params params.require(:product).permit(:title,:price)  结束