标签: ruby

什么%i或%我做红宝石?

什么是红宝石中%i或%I的含义?

我搜索了谷歌

"%i or %I" ruby
Run Code Online (Sandbox Code Playgroud)

但没有发现任何与红宝石有关的东西.

ruby ruby-on-rails

38
推荐指数
3
解决办法
2万
查看次数

何时在Ruby方法中使用`self.foo`而不是`foo`

这不是Rails特有的 - 我只是以Rails为例.

我在Rails中有一个模型:

class Item < ActiveRecord::Base

  def hello
    puts "Hello, #{self.name}"
  end
end
Run Code Online (Sandbox Code Playgroud)

(假设Item模型(类)有一个叫做的方法name).我什么时候需要使用self.name,何时可以使用name?(例如#{name})

ruby self

37
推荐指数
2
解决办法
4836
查看次数

Rspec:测试实例变量的赋值

使用Rspec与Factory Girl.试图检查我的控制器中分配了哪些数据(并对其进行测试).我读过的每一篇文章都说我应该能够从assigns()中得到一些东西,但它一直在返回nill

调节器

def index
 @stickies = Sticky.where(:user_id => current_user.id)
end
Run Code Online (Sandbox Code Playgroud)

规格

it "should assign stickies" do
  foo = assigns(:stickies)
  puts "foo = #{foo}"
end
Run Code Online (Sandbox Code Playgroud)

产量

foo = 
Run Code Online (Sandbox Code Playgroud)

我使用了错误的语法吗?有一个更好的方法吗?谢谢!!

ruby rspec ruby-on-rails

37
推荐指数
2
解决办法
3万
查看次数

在Ruby中的类名前加双冒号?

在类名之前,我已经在Rails中看到了很多双冒号的用法.

例如:

require ::File.expand_path('../config/environment',  __FILE__)
Run Code Online (Sandbox Code Playgroud)

我知道是什么Module::Class::Constant意思,但是::Class

ruby ruby-on-rails

37
推荐指数
1
解决办法
6346
查看次数

基于值的哈希数组上的唯一

我觉得这可以改善(红宝石的常见感觉).我正试图根据值unq一系列哈希.在这个例子中,我想要元素的颜色.苔藓和雪是冒名顶替者.

# remove unique array of hashes based on a hash value

a = [
  { :color => "blue", :name => "water" },
  { :color => "red", :name => "fire" },
  { :color => "white", :name => "wind" },
  { :color => "green", :name => "earth" },
  { :color => "green", :name => "moss" },
  { :color => "white", :name => "snow" }
]

# remove moss and snow
uniques = []
a.each_with_index do |r, i|
  colors = uniques.collect {|e| …
Run Code Online (Sandbox Code Playgroud)

ruby

37
推荐指数
2
解决办法
3万
查看次数

检测ruby是否在Windows上运行的正确方法是什么?

从Ruby中检测解释器是否在Windows上运行的正确方法是什么?"正确"包括它适用于所有主要版本的Ruby,包括1.8.x,1.9.x,JRuby,Rubinius和IronRuby.

目前排名靠前的"红宝石检测窗口"的Google搜索结果都是错误的或过时的.例如,一种不正确的方法是:

RUBY_PLATFORM =~ /mswin/
Run Code Online (Sandbox Code Playgroud)

这是不正确的,因为它无法在Windows上检测到mingw版本或JRuby.

什么是正确的方法?

ruby windows

37
推荐指数
2
解决办法
1万
查看次数

是否有一个Rails相当于PHP的isset()?

基本上只需要检查以确保设置了URL参数.我是如何用PHP完成的:

if(isset($_POST['foo']) && isset($_POST['bar'])){}
Run Code Online (Sandbox Code Playgroud)

这是RoR中isset()的粗略/最佳等价物吗?

if(!params['foo'].nil? && !params['bar'].nil?) end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

37
推荐指数
4
解决办法
2万
查看次数

Rails文章助手 - "a"或"an"

有没有人知道Rails Helper可以自动将相应的文章添加到给定的字符串中?例如,如果我将"apple"传递给该函数,它将变成"一个苹果",而如果我要发送"香蕉"它将返回"香蕉"

我已经检查了Rails TextHelper模块但找不到任何东西.如果这是重复的道歉,但无可否认,这是一个难以找到的答案......

ruby ruby-on-rails helpers ruby-on-rails-3

37
推荐指数
2
解决办法
7991
查看次数

Rails 3中图像路径的完整URL

我有一个包含载波上传的图片:

Image.find(:first).image.url #=> "/uploads/image/4d90/display_foo.jpg"
Run Code Online (Sandbox Code Playgroud)

在我看来,我想找到这个绝对的网址.追加root_url会导致双倍/.

root_url + image.url #=> http://localhost:3000//uploads/image/4d90/display_foo.jpg
Run Code Online (Sandbox Code Playgroud)

我不能使用url_for(我知道的),因为这要么允许传递的路径,或者选项标识资源和列表:only_path选项.由于我没有可通过"controller"+"action"识别的资源,因此我无法使用该:only_path选项.

url_for(image.url, :only_path => true) #=> wrong amount of parameters, 2 for 1
Run Code Online (Sandbox Code Playgroud)

在Rails3中创建一个完整URL的路径最干净,最好的方法是什么?

ruby url ruby-on-rails path ruby-on-rails-3

37
推荐指数
4
解决办法
4万
查看次数

错误消息"在Sierra上仅Xcode是不够的"

我想安装openCV来矢量化图像,但是有关于Xcode和Ruby的一系列错误消息.

首先,我使用终端安装openCV , brew install opencv.

然后,我收到错误消息,表明系统不喜欢我的ruby版本.

/usr/local/Homebrew/Library/Homebrew/brew.rb:12:in `<main>': 
Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError)
Run Code Online (Sandbox Code Playgroud)

所以,我想升级我的红宝石.我从这篇文章中了解了几个更新策略.第一次ruby升级试用:brew link --overwrite ruby&brew unlink ruby && brew link ruby得到

Error: No such keg: /usr/local/Cellar/ruby
Run Code Online (Sandbox Code Playgroud)

然后第二次ruby升级试用:brew upgrade ruby并看到以下错误消息.

Error: Xcode alone is not sufficient on Sierra.
Install the Command Line Tools:
xcode-select --install 
Run Code Online (Sandbox Code Playgroud)

此错误消息表示我需要安装已安装的Xcode.所以,我检查我的Xcode状态,code-select -p并获得/Applications/Xcode.app/Contents/Developer哪些意味着我没事.

我看到一个关于你在哪里安装python 的评论可能是个大问题.从来源引用:

如果你看到/usr/local/bin/python3你正在使用Homebrew版本的Python.如果是输出,/usr/bin/python3那么您错误地使用了Python的系统版本.

我检查which python3 …

ruby xcode homebrew command-line-tool python-3.x

37
推荐指数
4
解决办法
2万
查看次数