我正在使用: Ruby版本:2.3.1p112 Rails版本:使用WEBrick进行4.0.1版 Mysql版本:5.7.13 Homebrew
这是我的控制器代码:
class AutomationTestsController < ApplicationController
before_action :set_automation_test, only: [:show, :edit, :update, :destroy]
def create
params_all=params[:automation_test]
params_exclude_optional=params_all.except(:parameter10)
unless params_exclude_optional.values.include?""
@automation_test = AutomationTest.new(automation_test_params)
respond_to do |format|
if @automation_test.save
...
在我的控制器底部我有这个:
private
def set_automation_test
@automation_test = AutomationTest.find(params[:id])
end
def automation_test_params
params.require(:automation_test).permit(:Project, :ProjectType, :Status, :parameter1, :parameter2, :parameter3, :parameter4, :parameter4, :parameter5, :parameter6, :parameter7, :parameter8, :parameter9, :parameter10)
end
以下是schema.rb中的代码:
create_table "automation_tests", force: true do |t|
t.string "Project"
t.string "ProjectType"
t.string "Status"
t.string "parameter1"
t.string "parameter2"
t.string "parameter3"
t.string "parameter4"
t.string "parameter5"
t.string "parameter6"
t.string "parameter7"
t.string "parameter8"
t.string "parameter9"
t.string "parameter10"
t.datetime "created_at"
t.datetime "updated_at"
end
我添加了这个以便能够运行我的迁移:config / initializers / abstract_mysql_adapter.rb
activeSupport.on_load(:active_record) do
class ActiveRecord::ConnectionAdapters::MysqlAdapter
NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY"
end
end
我意识到save方法已被弃用,但我认为它仍然有效,不是吗?
服务器输出:
NoMethodError: undefined method `to_datetime' for true:TrueClass: INSERT INTO `automation_tests` (`Param1`, ...)
这是尝试INSERT的Rails:
SQL(4.3ms)INSERT INTO automation_tests
(Project
,ProjectType
,Status
,created_at
,parameter1
,parameter10
,{ {1}},parameter3
,parameter4
,parameter5
,parameter6
)VALUES(?,?,?,?,?,?,?,?,?,? ,?)[[“Project”,“NissanMipRestAutomation”],[“ProjectType”,“mipresttestautomation”],[“Status”,“READY”],[“created_at”,星期二,2016年9月13日14:24:33 PDT -07:00],[“parameter1”,“full-suite”],[“parameter10”,“”],[“parameter3”,“Environment = Test”],[“parameter4”,“Brand = Nissan”] ,[“parameter5”,“Category = NNA”],[“parameter6”,“Country = US”],[“updated_at”,星期二,2016年9月13日14:24:33 PDT -07:00]]
我看到rails也在创建一个“日期”来注入updated_at和created_at列:[“updated_at”,星期二,2016年9月13日14:24:33 PDT -07:00],但我无法成像这是有问题的。
如果有人对导致这种情况的原因有任何想法,我将非常感谢您的帮助。谢谢。
我终于想通了!我使用的是'mysql'宝石,而且它在使用mysql 5.7.13时遇到了困难 我转而使用gem mysql2 v.0.3.18,它立即起作用。