无法安装mysql2 gem

我无法在我的Windows7 x64系统中安装mysql2 gem。 我尝试使用32位和64位版本的MySQL服务器,但没有一个让我更进一步。 我安装了Ruby 1.8,开发工具包和Rails平台。 我甚至安装了minGW来允许C ++ / C编译。 MySQL Server安装在默认位置。 运行命令时: C:\Users\Arne>gem install mysql2 — –with-mysql-include=”C:\Program Files (x86)\MySQL\MySQL Server 5.1\include” –with-mysql-lib=”C:\Program Files (x86)\MySQL\MySQL Server 5.1\lib\” 我从控制台收到以下输出: Temporarily enhancing PATH to include DevKit… Building native extensions. This could take a while… *** extconf.rb failed *** Could not create Makefile due to some reason, probably […]

如何在Rails 3中生成带尾部斜杠的链接?

我将现有的网站从PHP移植到Ruby on Rails 3,我必须保持url不变。 我有路线: get ‘companies/’ => ‘companies#index’, :as => :companies 在视图文件中我有: link_to ‘Companies’, companies_path 这会生成URL“http://website.com/companies”而不是“http://website.com/companies/”。 我希望url末尾有斜杠。 可能吗?

在Mountain Lion上安装Ruby的问题 – ruby​​ 1.9.3不会编译

我之前看过很多关于此的post,并且已经遵循了他们的指示,但没有任何工作。 我将在下面概述我所做的事情,以及我所遵循的指示 – 对任何建议都会感激不尽! 我遵循了以下安装说明: http : //pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-mac 我已经下载了OSX Mountain Lion的X-code,并安装了gcc编译器: $ gcc –version i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A […]

什么时候在Ruby中使用’self’

这个方法: def format_stations_and_date from_station.titelize! if from_station.respond_to?(:titleize!) to_station.titleize! if to_station.respond_to?(:titleize!) if date.respond_to?(:to_date) date = date.to_date end end 当date为nil时失败并显示此错误: NoMethodError (You have a nil object when you didn’t expect it! The error occurred while evaluating nil.to_date): app/models/schedule.rb:87:in `format_stations_and_date’ app/controllers/schedules_controller.rb:15:in `show’ 但是,如果我将date = date.to_date更改为self.date = self.date.to_date ,则该方法可以正常工作。 这是怎么回事? 一般来说,我什么时候写self ? 编辑:这与问题无关,但请注意,没有“标题!” 方法。

ruby中各种变量范围之间的差异

Ruby有5个变量范围: 局部变量 :这些是正常变量,例如x = 25 , y = gaurish ,其中x和y是局部变量。 实例变量 :这些用实际变量名称的@符号表示。 主要用于类,以便类的每个实例/对象具有不同/单独的值。 例。 @employee.name = ‘Alex’ 类变量 :在变量名前面用@@符号表示。 类变量,我认为具有相同的值accos所有实例/对象。 全局变量 :它们以$符号开头, 随处可访问。 示例$LOAD_PATH 常量 :必须以大写字母开头,但必须按照ALL_CAPS的惯例ALL_CAPS 。 虽然,它是一个常数,但它的值不是常数,可以改变(虽然ruby会发出警告)。 从某种意义上说,这也像一个变量。 正如您可能注意到的,以上所有都是存储某些类型值的变量,它们的值可以更改。 但是,每个范围都会有所不同。 拥有5种不同类型的可变范围让我感到困惑。 主要是,我很难决定在什么情况下,我应该在我的代码中使用特定的范围。 所以我脑子里有一些问题。 请回答: 我注意到,与实例变量不同,局部变量和类变量对于所有对象/实例保持相同。 那么局部变量和类变量有什么区别? 可以使用局部变量代替类变量吗? 或相反亦然。 如果是,那么为什么,如果没有,那么为什么不呢? ruby中的全局变量让我想起了PHP中邪恶的global $x变量。 ruby中的全局变量也被认为是邪恶的,因此不应该使用。 或者,在特定情况下,在ruby中使用全局变量是有意义的吗? 为什么常量不是常量并允许更改它们的值? 根据定义,常数的值应该是不变的吗? 否则,我们可以使用另一个变量而不改变它的值。 那相当于ruby中的CONSTANT吗? 任何页面/资源/链接解释了ruby中5个不同变量范围之间的区别? 我想保留一个方便参考。 在什么用例下,我应该在我的代码中使用特定的变量作用域。 因此,人们会解释所有5个案例,这些案例很酷,这是我混淆的主要原因。 在java中有像public这样的事实上的选择吗? 在大多数用例中哪个是安全的赌注? 感谢您花时间阅读并回答问题

为什么String#gsub会双重内容?

s = “#main= ‘quotes’ s.gsub “‘”, “\\'” # => “#main= quotes’quotes” 这似乎是错误的,我希望得到”#main= \\’quotes\\'” 当我不使用转义字符时,它按预期工作。 s.gsub “‘”, “*” # => “#main= *quotes*” 所以必须与逃避有关。 使用ruby 1.9.2p290 我需要用反斜杠和引号替换单引号。 更多的不一致: “\\'”.length # => 2 “\\*”.length # => 2 # As expected “‘”.gsub(“‘”, “\\*”).length # => 2 “‘a'”.gsub(“‘”, “\\*”) # => “\\*a\\*” (length==5) # WTF next: “‘”.gsub(“‘”, “\\'”).length # => […]

在初始化程序中设置cache_store

我正在尝试使用redis-store作为我的Rails 3 cache_store。 我还有一个初始化器/ app_config.rb,它为配置设置加载一个yaml文件。 在我的初始化程序/ redis.rb中,我有: MyApp::Application.config.cache_store = :redis_store, APP_CONFIG[‘redis’] 但是,这似乎不起作用。 如果我做: Rails.cache 在我的rails控制台中,我可以清楚地看到它正在使用 ActiveSupport.Cache.FileStore 作为缓存存储而不是redis-store。 但是,如果我在application.rb文件中添加配置,如下所示: config.cache_store = :redis_store 它运行得很好,除了在app.rb之后加载app config初始化程序,所以我没有访问APP_CONFIG。 有没有人经历过这个? 我似乎无法在初始化程序中设置缓存存储。

如何跳过CSV文件的第一行并将第二行作为标题

有没有办法跳过CSV文件的第一行并使第二行充当标题? 我有一个CSV文件,第一行有日期,第二行有标题,所以我需要能够在迭代时跳过第一行。 我尝试使用slice但将CSV转换为数组,我真的想将其读作CSV,以便我可以利用标头。

使用Rails3和Ruby 1.9.2运行Mongrel的LoadError

我是编程(以前只做html / css / design)的新手,试图通过Simply Rails 2开始学习RoR。但是我想从最新版本的Ruby(1.9.2)和Rails(3)开始我被迫在没有这本书的情况下完成所有配置。 我通过谷歌和stackoverflow看了很多。 当我运行rails server它自动使用Webrick,但我想使用Mongrel。 我通过gem install mongrel –pre安装了预发布的Mongrel并删除了以前的版本。 我读到为了让Mongrel与rails server一起工作,我不得不在Gemfile中添加gem’mongrel gem ‘mongrel’ ,但我不知道应该将它添加到哪一个(我尝试了几个但没有改变)。 所以我决定通过git查看mongrel文档并了解mongrel_rails start在我运行时mongrel_rails start我得到了这个: C:\Ruby192\shovell>mongrel_rails start ** Starting Mongrel listening at 0.0.0.0:3000 ** Starting Rails with development environment… C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0.rc.6/lib/bundler/runtime.rb:27:in ‘block in setup’: You have already activated mongrel 1.2. 0.pre2, but your Gemfile requires mongrel 1.1.5. Consider using […]

什么是|| =是什么意思?

我的应用程序控制器中有一个受保护的方法 def current_user @current_user ||= User.find_by_id(session[:user_id]) end 我想知道||=是什么意思? 我一直在努力寻找并找出答案,但无济于事。