我在app的admin部分使用pundit进行访问控制.我有一个仪表板控制器,如下所示:
class Admin::DashboardsController < AdminController
def index
@total_revenue = Order.total_revenue
authorize :dashboards, :index?
end
...
end
Run Code Online (Sandbox Code Playgroud)
和一个看起来像这样的政策:
class DashboardPolicy < Struct.new(:user, :dashboard)
def index?
true
end
end
Run Code Online (Sandbox Code Playgroud)
当我试图访问时,/admin/dashboards/我得到一个Pundit::NotDefinedError, unable to find policy SymbolPolicy for dashboards
我也试过命名空间策略并得到了同样的错误.
我正在使用Swift编写一个命令行应用程序,但我不确定如何访问传入的参数.在C/Obj-c中它似乎相对无痛但是如果我尝试:
argv[0]
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:使用未解析的标识符'argv'
我有一个使用puma运行的rails(4.2.4)应用程序.文件说:
如果通过
-e和--environment标志或RACK_ENV环境变量指定了环境,则默认文件位置为config/puma/environment_name.rb.
这就是我的配置文件所在的位置.
在我的开发环境中,puma启动就好了.这是配置:
workers 1
threads 1, 6
environment 'development'
activate_control_app
Run Code Online (Sandbox Code Playgroud)
然而,我的生产环境存在问题.这是配置:
workers 1
threads 1, 6
environment 'production'
app_dir = File.expand_path('../../..', __FILE__)
bind "unix://#{app_dir}/tmp/sockets/puma.sock"
stdout_redirect "#{app_dir}/log/puma.stdout.log",
"#{app_dir}/log/puma.stderr.log",
true
pidfile "#{app_dir}/tmp/pids/puma.pid"
state_path "#{app_dir}/tmp/pids/puma.state"
activate_control_app
daemonize true
Run Code Online (Sandbox Code Playgroud)
这显然更复杂,主要是为了使用套接字,日志记录和守护进程.我知道它的工作原理,因为它可以通过以下命令启动:
$ bundle exec pumactl start
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但是,如果我想像上面的命令一样停止或重启服务器,我收到以下消息:
$ bundle exec pumactl stop
Neither pid nor control url available
Run Code Online (Sandbox Code Playgroud)
如果我指定配置文件的位置,它的工作原理:
$ bundle exec pumactl -F config/puma/production.rb stop
Run Code Online (Sandbox Code Playgroud)
为什么我需要指定配置文件stop,restart但不是start?
我在这样的表单中有一个字段:
<input type="text" minlength="20" name="description" id="description" />
Run Code Online (Sandbox Code Playgroud)
输入时,minlength验证效果很好。但是,如果以编程方式设置输入的值,则不会触发验证。
var field = document.querySelector("#description");
// type a couple of character into the field
field.validity.tooShort;
// true
field.value = '';
field.validity.tooShort;
// false
Run Code Online (Sandbox Code Playgroud)
有解决方法吗?还是有计划的修复?我用错了吗?
当我运行rspec时,我在使用Draper的be_decorated助手时收到了弃用警告:
DEPRECATION WARNING: `named_routes.helpers` is deprecated, please use `route_defined?(route_name)` to see if a named route was defined.
Run Code Online (Sandbox Code Playgroud)
我正在使用: