首页 > 解决方案 > 在 Rails 上插入查询错误

问题描述

因此,我正在尝试学习 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 %>

<% 结束 %>

这是 Rails 向 Rails Server 执行的 SQL 查询

在 2018 年 12 月 4 日 16:44:52 +0300 为 127.0.0.1 开始 POST "/products" 处理由 ProductsController#create 作为 HTML 参数:{"utf8"=>"✓", "authenticity_token"=>"9Z4aFNpMv+ uUPXx+LkHoOtYpWae/8tIOCQ3Jt47AFScp/vVHTWI+G4d6CjHqBz6t5L5UR57I7Gh7bUWog1Dqow==", "product"=>{"title"=>"brokoli", "price"=>"3434"}, "commit"=>"Save Product"} (0.2 ms) BEGIN ↳ app/controllers/products_controller.rb:8 产品创建 (0.3ms) INSERT INTO products( created_at, updated_at) VALUES ('2018-12-04 13:44:52', '2018-12-04 13:44:52 ') ↳ app/controllers/products_controller.rb:8 (5.4ms) COMMIT ↳ app/controllers/products_controller.rb:8 重定向到http://localhost:3000/products/12 完成 302 在 25 毫秒内找到(ActiveRecord:7.4 毫秒)

标签: sqlruby-on-railsruby

解决方案


你不做

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

你做

@product = Product.new(product_params)

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


推荐阅读