Tag: 初始化

如何在Rails启动时创建线程?

我正在尝试在Rails启动时创建一个线程,该线程将在应用程序的整个生命周期内运行。 奇怪的是,我已经使用了另一个我正在运行的线程。 我复制了那个(工作)代码并将其用作新线程新代码的样板。 但线程不会启动。 代码在config / initializers中(这是正确的位置吗?)。 文件以’z _…’开头命名,以确保它最后运行。 Rails 3.2.6 以下是代码的一般结构: class Blah def self.the_thread The_Model.transaction do # do some database stuff # … end TheThread = Thread.new do while true do the_thread sleep 5.seconds end end end 打开一个rails控制台并检查Blah :: TheThread会显示一个似乎没有运行的死线程。 在类的声明中,或者在方法中似乎没有任何错误,因为我可以在打开rails控制台时运行该方法并且它工作得很好。 另外,如果我手动输入rails控制台上面产生线程的确切代码(TheThread = Thread new do …),它就可以正常工作(每隔5秒唤醒一次,做它的事情,再次睡觉)。 同样,奇怪的是,在这个完全相同的应用程序中,这个用于在Rails中生成一个简单线程的精确模板曾经为我工作过。 如果有人对我认为是一个奇怪的问题有一些可能的见解,我会全力以赴。 谢谢。 编辑:新信息 – 我只是注释掉了事务调用(和匹配结束),它工作正常。 […]

设计可邀:未初始化的常量

我正在使用设计,工作正常,现在我尝试使用devise_invitable。 我正确安装了它,但是当我尝试访问时出现错误 HTTP://本地主机:3000 /用户/邀请/新 错误是: Started GET “/users/invitation/new” for 127.0.0.1 at 2011-07-06 20:47:07 -0300 ActionController::RoutingError (uninitialized constant Users): Rendered /Users/Fernando/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.0.7/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.9ms) The routes looks like ok, and I dont know why it return this error. 路线: accept_user_invitation GET /users/invitation/accept(.:format) {:action=>”edit”, :controller=>”devise/invitations”} user_invitation POST /users/invitation(.:format) {:action=>”create”, :controller=>”devise/invitations”} new_user_invitation GET /users/invitation/new(.:format) {:action=>”new”, :controller=>”devise/invitations”}

将初始化打破rails中的布局设置?

在其中一个控制器中,我需要一个特定的布局。 我在开头添加了layout 。 它运作良好。 但是,如果我为一些基于控制器的变量添加initialize函数。 Rails似乎只是忽略了layout命令。 有没有人有同样的问题? 我该如何解决? class AdminsController < ApplicationController layout "layout_admins" def initialize @Title = "Admins" end def index ……. some code here end end

rails 4在初始化程序中使用应用程序助手

是否可以在config/initializers/browser_blocker.rb包含/使用Application Helper方法? 我正在使用浏览器gem来检测和阻止旧的非现代浏览器。 Rails.configuration.middleware.use Browser::Middleware do include ApplicationHelper redirect_to :controller => ‘error’, :action => ‘browser-upgrade-required’ if browser_is_not_supported end 我正在使用的助手方法: # test browser version def browser_is_not_supported return true unless browser.modern? return true if browser.chrome? && browser.version.to_i < ENV['BROWSER_BASE_VERSION_GOOGLE'].to_i return true if browser.firefox? && browser.version.to_i < ENV['BROWSER_BASE_VERSION_FIREFOX'].to_i return true if browser.safari? && browser.version.to_i < ENV['BROWSER_BASE_VERSION_SAFARI'].to_i return true […]

Ruby on Rails 5.0升级无法使用rails console或db:migrate

在最近从4.2升级到Ruby on Rails 5.0之后,我无法运行rake db:migrate或rails console。 我认为最好首先解决控制台错误,它似乎给了以下更多信息错误: 如果我正确理解您的请求,这是完整的堆栈跟踪。 谢谢。 $ rails c /Users/my_username/.rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0/lib/action_controller/test_case.rb:49:in `initialize’: wrong number of arguments (given 0, expected 2) (ArgumentError) from /Users/my_username/.rvm/gems/ruby-2.3.0/bundler/gems/draper-57a514133bc2/lib/draper/view_context/build_strategy.rb:41:in `new’ from /Users/my_username/.rvm/gems/ruby-2.3.0/bundler/gems/draper-57a514133bc2/lib/draper/view_context/build_strategy.rb:41:in `block in controller’ from /Users/my_username/.rvm/gems/ruby-2.3.0/gems/andand-1.3.3/lib/andand.rb:60:in `me’ from /Users/my_username/.rvm/gems/ruby-2.3.0/bundler/gems/draper-57a514133bc2/lib/draper/view_context/build_strategy.rb:40:in `controller’ from /Users/my_username/.rvm/gems/ruby-2.3.0/bundler/gems/draper-57a514133bc2/lib/draper/view_context/build_strategy.rb:30:in `call’ from /Users/my_username/.rvm/gems/ruby-2.3.0/bundler/gems/draper-57a514133bc2/lib/draper/view_context.rb:49:in `build’ from /Users/my_username/.rvm/gems/ruby-2.3.0/bundler/gems/draper-57a514133bc2/lib/draper/railtie.rb:63:in `block in ‘ from /Users/my_username/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0/lib/rails/railtie.rb:226:in `block in run_console_blocks’ from /Users/my_username/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0/lib/rails/railtie.rb:247:in […]

这个属性如何在ruby类中保存多个属性?

在这里,你看到我们有一个名为“属性”的属性,我们在我们的类中初始化它,所以问题是名称和衬衫属性来自哪里,因为我们不在我们的类中初始化和定义它们? class Shirt attr_accessor :attribute def initialize(attributes) @attributes = attributes end end store = Shirt.new(name: “go”, size: “42”) 当我检查这个衬衫类的实例时,我得到一个哈希: @attributes={:name=>”go”, :size=>”42″} 有人可以帮忙解释一下吗?

Ruby错误(未初始化的常量User :: Relationship)

我是ruby的新手,并试图通过Michael Hartl的http://ruby.railstutorial.org/工作 。 我在第12章并继续发现这个错误 uninitialized constant User::Relationship 这种错误意味着什么? 您认为我的错误可能是什么? attr_accessor :password attr_accessible :name, :email, :password, :password_confirmation, :admin has_many :microposts, :dependent => :destroy has_many :relationships, :foreign_key => “follower_id”, :dependent => :destroy has_many :following, :through => :relationships, :source => :followed has_many :reverse_relationships, :foreign_key => “followed_id”, :class_name => “Relationship”, :dependent => :destroy has_many :followers, :through => :reverse_relationships, :source […]

Multidimestional Array – `initialize’:错误的参数个数(1表示0)

我还是铁杆里的ruby新手。 今天我正在尝试编写一些可以运行以下代码的代码: image = Image.new([ [0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0] ]) image.output_image 而我在设置初始化时遇到了麻烦。 我的代码如下,有人可以帮帮我吗? 非常感谢 class Subary attr_accessor :num1, :num2, :num3, :num4 def initialize (num1, num2, num3, num4) self.num1 = num1 self.num2 = num2 self.num3 = num3 self.num4 = num4 end def output_subary puts […]

Ruby元编程:初始化singleton_class变量

为什么Foo.val在调用Foo.set之前返回nil而不是”foo” ? 在课堂评估中是否有任何初始化@val机制? @val = “foo”存放在哪个范围内? class Foo class << self @val = "foo" attr_reader :val def set(val) @val = val end end end p Foo.val # nil Foo.set("bar") p Foo.val # "bar"

如何为二维数组指定默认值?

我有一个像这样创建的二维数组: array = Array.new(10){Array.new(10)} 如何在初始化时为每个单元格分配默认值? 我知道我可以用两个嵌套的each循环做到这一点,但我想知道是否还有另一种方法?