sql - 在 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 毫秒)
解决方案
你不做
@product = Product.new(params[:product_params])
你做
@product = Product.new(product_params)
这product_params
是一种返回白名单参数条目的方法。
推荐阅读
- c# - 如何修复控制台应用显示中缺少的 CR
- amazon-web-services - 作为持续集成的一部分,有没有办法以编程方式检查 AWS EMR 作业是否成功?
- excel - 使用 Cell.Address 定义范围 - VBA
- hadoop - 使用 Hadoop / Hive 在列表中查找异常高的值
- google-slides - 有没有办法在谷歌幻灯片中为表格设置动画?
- php - PHP 仅从 csv 文件中提取价格低于 10 的简单产品
- javascript - Jquery加载仅在第一次点击时工作一次
- symfony - 如何解决作曲家自动加载中文件的路径错误
- python - OSError:自上次 macOS 更新以来使用 pd.read(csv) 从文件初始化失败
- python - 在 anaconda 环境中搜索已安装特定软件包的环境