这是我不断得到的错误.我安装了DevKit并遵循了所有说明.
gem install json -v '1.6.3'
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
"C:/Program Files/Ruby/Ruby192/bin/ruby.exe" extconf.rb
creating Makefile
make
Makefile:160: warning: overriding commands for target `C:/Program'
Makefile:153: warning: ignoring old commands for target `C:/Program'
C:/Program Files/Ruby/Ruby192/bin/ruby -e "puts 'EXPORTS', 'Init_parser'" > par
ser-i386-mingw32.def
/bin/sh: C:/Program: No such file or directory
make: *** [parser-i386-mingw32.def] Error 127
Gem files will remain installed in C:/Program …Run Code Online (Sandbox Code Playgroud) 鉴于以下设置(目前不工作)
class Employee < ActiveRecord::Base
end
class Manager < Employee
end
ActiveAdmin.register Employee do
form do |f|
f.input :name
f.input :joining_date
f.input :salary
f.input :type, as: select, collection: Employee.descendants.map(&:name)
end
end
Run Code Online (Sandbox Code Playgroud)
我希望为所有员工提供一个"新"表单,并能够在表单中选择员工的STI类型.我能够按预期看到"类型"的选择框,但是当我点击"创建"按钮时,我收到以下错误:
ActiveModel::MassAssignmentSecurity::Error in Admin::EmployeesController#create
Can't mass-assign protected attributes: type
Run Code Online (Sandbox Code Playgroud)
现在,我知道受保护的属性在Rails中的工作方式,我有一些解决方法,如定义,Employee.attributes_protected_by_default但这会降低安全性,而且太糟糕了.
我希望能够使用ActiveAdmin中的某些功能执行此操作,但我找不到一个.我不想创建自定义控制器操作,因为我展示的示例是高度简化和设计的.
我希望以某种方式由ActiveAdmin生成的控制器识别type并执行Manager.create而不是Employee.create
有没有人知道解决方法?
我有一个大表(包含大量列的 2M+ 条记录)。我打算进行 GROUP BY 来进行重复数据删除。我想知道以下两种策略哪种效果更好?
我知道我可以运行基准测试,但在开始实施之前我需要一些理论输入。