你怎么能有一个简单形式的隐藏领域?
以下代码:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
Run Code Online (Sandbox Code Playgroud)
导致此错误:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
Run Code Online (Sandbox Code Playgroud) ruby-on-rails hidden-field form-for ruby-on-rails-3 simple-form
这个代码在rails 5中
class PagesController < ApplicationController
def action
render nothing: true
end
end
Run Code Online (Sandbox Code Playgroud)
导致以下弃用警告
DEPRECATION WARNING: :nothing` option is deprecated and will be removed in Rails 5.1. Use `head` method to respond with empty response body.
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我是这个永远奔跑的工人.
class Worker
include Sidekiq::Worker
sidekiq_options queue: "infinity", retry: true
def perform(params)
# ...
self.class.perform_in(30.seconds, params)
end
end
Run Code Online (Sandbox Code Playgroud)
问题是我在启动时加载工人,就像这样. config/initializers/load_workers.rb
Rails.application.config.after_initialize do
if ENV["SIDEKIQ"] == "1"
Worker.perform_async({})
end
end
Run Code Online (Sandbox Code Playgroud)
用这个来启动sidekiq SIDEKIQ=1 sidekiq --verbose --environment production -C config/sidekiq.yml.
这意味着老工人要停下来,既有目前正在运行的人,也有被重新安排的人.
我尝试在启动时运行它(在加载新工作之前),但这不起作用.
q = []
q += Sidekiq::RetrySet.new.select { |job| job.klass.match(/Worker/) }
q += Sidekiq::Queue.new("infinity").select { |job| job.klass.match(/Worker/) }
q += Sidekiq::ScheduledSet.new.select { |job| job.klass.match(/Worker/) }
q.each(&:delete)
Run Code Online (Sandbox Code Playgroud)
在5-ish部署之后,队列中有大量重复的工作程序安排在稍后.那么,有没有办法清除一个队列中的每一个并阻止已经重新安排的作业?
我正在使用sidekiq 3.0.
我刚才看到有可能在rails中解密和加密字符串而不包括任何库,但我找不到博客文章.
我希望能够加密和解密字符串而不包含任何内容.使用相同的密钥可以用于rails中的所有其他内容,例如签名的cookie.
有任何想法吗?
我有一个上帝脚本,应该留意两个跟踪者进程.问题是24小时后启动的过程太多了.
这是神剧本.
rails_root = File.expand_path("../..", __FILE__)
2.times do |n|
God.watch do |w|
w.group = "app-scripts"
w.name = "run-#{n}"
w.interval = 30.seconds
w.dir = File.dirname(__FILE__)
w.env = {
"BUNDLE_GEMFILE" => "#{rails_root}/Gemfile",
"RAILS_ENV" => "production",
"BEANSTALK_URL" => "beanstalk://127.0.0.1:54132"
}
w.start = "bbundle exec stalk #{File.join(rails_root, "config/jobs.rb")}"
w.start_grace = 5.seconds
w.stop_grace = 5.seconds
w.start_if do |start|
start.condition(:process_running) { |c| c.running = false }
end
w.restart_if do |restart|
restart.condition(:memory_usage) do |c|
c.above = 200.megabytes
c.times = [3, 5]
end
restart.condition(:cpu_usage) do |c|
c.above …Run Code Online (Sandbox Code Playgroud) 我试图在Rails 3.1 rc1中使用sass时收到这些警告.
WARN: tilt autoloading 'sass' in a non thread-safe way; explicit require 'sass' suggested.
WARN: tilt autoloading 'sass/plugin' in a non thread-safe way; explicit require 'sass/plugin' suggested.
Run Code Online (Sandbox Code Playgroud)
这是我的Gemfile.
gem "rails", "~> 3.1.0.rc1"
gem "haml"
gem "sass"
Run Code Online (Sandbox Code Playgroud)
我试图sass.rb在config/initializers包含此代码的内部创建一个文件.
require "sass"
Run Code Online (Sandbox Code Playgroud)
将Gemfile更改为此.
gem "rails", "~> 3.1.0.rc1"
gem "haml"
gem "sass", require: false
Run Code Online (Sandbox Code Playgroud)
但警告仍然存在.谁知道怎么解决?
我想在当前模式下更改待处理光标的颜色.
这是我到目前为止的代码(.gvimrc).
set gcr=n:blinkon0
set gcr=i:blinkon0
highlight Cursor guifg=white guibg=red
highlight iCursor guifg=white guibg=green
Run Code Online (Sandbox Code Playgroud)
现在光标是灰色的,没有任何变化.运行highlight Cursor guifg=white guibg=red手工作品,但下面不就行了.
我希望插入模式下的颜色为绿色,其他模式下的颜色为红色.
我已经为rails 3中的控制器创建了一个生成器.现在我想在使用脚手架生成器时将此生成器用作默认生成器.
那可能吗?
我正在尝试创建一个暴露ActionCable频道的gem,但我无法让它工作.
这是我的宝石
# lib/my_channel.rb
class MyChannel < ActionCable::Channel::Base
def wait(data)
# logic ...
end
end
# lib/engine.rb
module MyApp
class Engine < ::Rails::Engine
isolate_namespace MyApp
end
end
Run Code Online (Sandbox Code Playgroud)
然后我将gem添加到我的主应用程序中Gemfile,运行bundle install,启动控制台并运行MyChannel.哪个不产生和错误,意味着通道被正确包含.
然后我将其添加到我的主应用程序中
// application.js
var socket = "ws://localhost:3000/cable";
var cable = ActionCable.createConsumer(socket);
cable.subscriptions.create({ "channel": "MyChannel" }, {
received: function(){
// ...
}
});
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误
Subscription class not found ({"command"=>"subscribe", "identifier"=>"{\"channel\":\"MyChannel\"}"})
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我试图使用Capistrano部署我的应用程序,但我收到此错误消息:
`deploy:setup'仅对匹配{:except => {:no_release => true}}的服务器运行,但没有匹配的服务器
运行此命令时:
bundle exec cap deploy:setup
Run Code Online (Sandbox Code Playgroud)
这是我的deploy.rb文件.
set :application, "example.com"
set :repository, "git@github.com:username/repo.git"
set :use_sudo, false
set :scm, :git
set :web, application
set :app, application
set :db, application
set :branch, "master"
set :user, "webmaster"
set :deploy_to, "/opt/www/#{application}"
set :deploy_via, :remote_cache
set :domain, application
set :port, 2222
set :bundler_cmd, "bundle install --deployment --without=development,test"
ssh_options[:paranoid] = false
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart_stalker do
run "cd #{deploy_to}/current && …Run Code Online (Sandbox Code Playgroud) ruby ×3
actioncable ×1
beanstalkd ×1
capistrano ×1
encryption ×1
form-for ×1
god ×1
hidden-field ×1
sass ×1
sidekiq ×1
simple-form ×1
vim ×1