标签: ruby

创建符号数组

有没有更清洁的方法来做这样的事情?

%w[address city state postal country].map(&:to_sym) 
#=> [:address, :city, :state, :postal, :country]
Run Code Online (Sandbox Code Playgroud)

我想我会%s做我想做的事,但事实并非如此.它只需要括号之间的所有内容,并使其中的一个大符号.

只是一个小小的烦恼.

ruby

125
推荐指数
2
解决办法
5万
查看次数

什么是"Ruby方式"一次迭代两个数组

更多的语法好奇心而不是要解决的问题......

我有两个长度相等的数组,并希望一次迭代它们 - 例如,在某个索引处输出它们的值.

@budget = [ 100, 150, 25, 105 ]
@actual = [ 120, 100, 50, 100 ]
Run Code Online (Sandbox Code Playgroud)

我知道我可以each_index像这样使用和索引数组:

@budget.each_index do |i|
  puts @budget[i]
  puts @actual[i]
end
Run Code Online (Sandbox Code Playgroud)

有没有Ruby方法可以更好地做到这一点?这样的东西?

# Obviously doesn't achieve what I want it to - but is there something like this?
[@budget, @actual].each do |budget, actual|
  puts budget
  puts actual
end
Run Code Online (Sandbox Code Playgroud)

ruby arrays iterator

124
推荐指数
6
解决办法
5万
查看次数

将首字母大写在红宝石中

upcase方法将整个字符串大写.

我只需要把第一个字母大写.

另外,我需要支持几种流行语言,如德语和俄语.

我该怎么做?

ruby

124
推荐指数
6
解决办法
12万
查看次数

删除数据库表中的所有记录

如何在Ruby on Rails应用程序中删除我的一个数据库表中的所有记录?

ruby database ruby-on-rails ruby-on-rails-3

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

在ruby中使用单引号和双引号是否有性能提升?

你知道在ruby中使用双引号而不是单引号会在ruby 1.8和1.9中以任何有意义的方式降低性能.

所以,如果我输入

question = 'my question'
Run Code Online (Sandbox Code Playgroud)

比它快吗?

question = "my question"
Run Code Online (Sandbox Code Playgroud)

我想ruby试图弄清楚当遇到双引号时是否需要对某些东西进行评估,并且可能花费一些周期来做这件事.

ruby syntax performance

123
推荐指数
7
解决办法
2万
查看次数

在Rails中,如何使用视图呈现JSON?

假设您在用户控制器中,并且想要获得show请求的json响应,那么如果您可以在views/users/dir中创建一个名为show.json的文件并且在您的用户#show之后创建一个文件会很好动作完成后,呈现文件.

目前你需要做一些事情:

def show
  @user = User.find( params[:id] )
  respond_to do |format|
    format.html
    format.json{
      render :json => @user.to_json
    }
  end
end
Run Code Online (Sandbox Code Playgroud)

但是如果你可以创建一个自动渲染的show.json文件就好了:

def show
  @user = User.find( params[:id] )
  respond_to do |format|
    format.html
    format.json
  end
end
Run Code Online (Sandbox Code Playgroud)

这样可以减轻我的痛苦,并且当我在控制器中渲染我的json时,它会消除我得到的那种可怕的肮脏感觉

ruby templates json rendering ruby-on-rails

123
推荐指数
7
解决办法
14万
查看次数

如何查看capybara中的复选框?

我正在使用Rspec和Capybara.

我怎么写一个步骤来检查checkbox?我已经尝试check了价值,但它找不到我的checkbox.我不知道该怎么做,因为我实际上有相同的ID具有不同的值

这是代码:

 <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID">
 <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID">
 <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">
Run Code Online (Sandbox Code Playgroud)

ruby testing rspec ruby-on-rails capybara

123
推荐指数
8
解决办法
9万
查看次数

升级到Capybara 2.0后如何点击项目列表中的第一个链接?

在这种情况下如何单击第一个链接:

<div class="item">
  <a href="/agree/">Agree</a>
</div>
<div class="item">
  <a href="/agree/">Agree</a>
</div>
Run Code Online (Sandbox Code Playgroud)
within ".item" do
  first(:link, "Agree").click
end
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Capybara::Ambiguous:
  Ambiguous match, found 2 elements matching css ".item"
Run Code Online (Sandbox Code Playgroud)

没有within我得到这个错误:

Failure/Error: first(:link, "Agree").click
NoMethodError:
  undefined method `click' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

ruby rspec capybara

123
推荐指数
5
解决办法
7万
查看次数

在Ruby中获取人的年龄

我想从一个人的生日那里得到一个人的年龄.now - birthday / 365不起作用,因为有些年份有366天.我想出了以下代码:

now = Date.today
year = now.year - birth_date.year

if (date+year.year) > now
  year = year - 1
end
Run Code Online (Sandbox Code Playgroud)

是否有更多Ruby的计​​算年龄的方法?

ruby ruby-on-rails

122
推荐指数
8
解决办法
5万
查看次数

Ruby将Object转换为Hash

假设我有&的Gift对象.将它转换为Ruby中的Hash的最佳方法是什么,而不是Rails(尽管也可以自由地给出Rails的答案)?@name = "book"@price = 15.95{name: "book", price: 15.95}

ruby object hashmap instance-variables

122
推荐指数
10
解决办法
12万
查看次数