相关疑难解决方法(0)

`:key =>"value"`和`key:"value"`哈希符号之间有什么区别吗?

:key => "value"(hashrocket)和key: "value"(Ruby 1.9)符号之间有什么区别吗?

如果没有,那么我想使用key: "value"符号.有没有宝石可以帮助我转换:x =>x:符号?

ruby syntax hash ruby-1.9 hashrocket

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

Ruby:结肠前后vs

使用Ruby时,我总是和它混在一起:.

当有人在变量名称之前使用它时,有人可以解释一下吗:name,当我想在变量之后使用它时name:

一个例子是崇高的.

ruby

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

带字符串键的ruby new hash冒号表示法

使用ruby 1.9.3,字符串键似乎不适用于Hash冒号表示法:

1.9.3p194 :005 > {abc: 5}
 => {:abc=>5} 

1.9.3p194 :004 > {'abc': 5}
SyntaxError: (irb):4: syntax error, unexpected ':', expecting tASSOC
{'abc': 5}
       ^
Run Code Online (Sandbox Code Playgroud)

我想我正在运行正确版本的Ruby

1.9.3p194 :006 > RUBY_ENGINE
 => "ruby" 
1.9.3p194 :007 > RUBY_VERSION
 => "1.9.3" 
Run Code Online (Sandbox Code Playgroud)

ruby

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

Rails - 如何使用查找或创建

我有以下内容:

@permission = @group.permissions.create(
  :user_id => @user.id,
  :role_id => 2,
  :creator_id => current_user.id)
Run Code Online (Sandbox Code Playgroud)

如何更新它find_or_create,以便如果此记录已存在,则分配给@permission它,如果不存在,则创建记录?

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

17
推荐指数
3
解决办法
5万
查看次数

如何从具有空格的字符串创建符号?

我正在为电影名称存储创建一个Ruby哈希.

当哈希的键是包含空格的字符串时,它可以正常工作.

如:

movies = {"Avatar" => 5, "Lord of the rings" => 4, "Godfather" => 4}

现在我试图用符号替换字符串的使用:

movies = {Avatar: 5, Lord of the rings: 4, Godfather: 4}

显然这不起作用.

Ruby如何处理符号命名中的空格?

ruby hash symbols

13
推荐指数
2
解决办法
7387
查看次数

在Ruby 1.8中支持Ruby 1.9的哈希语法

我在{key: 'value'}整个代码中使用哈希语法编写Ruby gem .我的测试全部通过1.9.x,但我(可以理解)进入syntax error, unexpected ':', expecting ')'1.8.7.

是否有支持1.8.x的最佳实践?我是否需要使用我们的老朋友重写代码=>,还是有更好的策略?

ruby syntax hash backwards-compatibility ruby-1.8

5
推荐指数
1
解决办法
2342
查看次数

Ruby hash rocket vs 1.9语法

Railscast 第275集 - 我如何测试使用以下代码向用户发送密码重置:

def send_password_reset
  generate_token(:password_reset_token)
  ....
  ... etc
end

def generate_token(column)
  begin
    self[column] = SecureRandom.urlsafe_base64
  end while User.exists?(column => self[column])
end
Run Code Online (Sandbox Code Playgroud)

我的问题是倒数第二行代码:end while User.exists?(column => self[column])它的工作原理很好,但是如果换掉哈希火箭就会导致我的规格失败,即end while User.exists?(column: self[column])

Failure/Error: user.send_password_reset
   ActiveRecord::StatementInvalid:
   SQLite3::SQLException: no such column: users.column: SELECT  1 FROM "users"  WHERE "users"."column" = 'Y7JJV4VAKBbf77zKFVH7RQ' LIMIT 1
Run Code Online (Sandbox Code Playgroud)

为什么会这样?是否有必须使用哈希火箭的情况,是否有任何指导方针?

ruby ruby-on-rails-3

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

如何使用新的ruby(1.9)哈希语法从关联创建符号(哈希键)?

对不起,我甚至不确定如何提出这个问题..所以,如果你可以提出这个问题,我们将不胜感激.

# A. WORKS, but "stockroom" is hardcoded
render partial: association.to_s.singularize + '',
  locals: {stockroom: new_object}

# B. WORKS, but uses old syntax
render partial: association.to_s.singularize + '',
  locals: {association.to_s.singularize.to_sym => new_object}

# C. does NOT work
render partial: association.to_s.singularize + '',
  locals: {association.to_s.singularize.to_sym: new_object}

# D. does NOT work
ass = association.to_s.singularize.to_sym
logger.debug "--- ass: #{ass.inspect} (#{ass.class})"
  # => --- ass: :stockroom (Symbol)
render partial: association.to_s.singularize + '', locals: {ass: new_object}
Run Code Online (Sandbox Code Playgroud)

并不是旧语法是坏事,我只是想知道是否有办法使用新语法(甚至通过中介(即屁股))来做到这一点.

ruby hash symbols

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

区别:target =>'_ blank'和target:="_ blank"

我最近问了一个关于在新页面中打开链接的问题(继续链接).我发现有两个答案.

:target => '_blank' 
target: "_blank"
Run Code Online (Sandbox Code Playgroud)

我希望有人可以解释单引号和双引号之间的区别以及为什么上述两种方法都有效.我理解第二个选项只能在更新版本的rails上实现(我使用的是3.2.2).

ruby

0
推荐指数
1
解决办法
436
查看次数

Ruby/Rails哈希火箭语法

有人能指出我只是解释Ruby/Rails中不同语法特征的好的入门读物吗?例如,我看到的一些例子myMethod(x: "z")和其他例子怎么做myMethod(:x => "x")

一般来说语法对我来说似乎很奇怪,只是寻找一个快速的一目了然的参考作为备忘单.

ruby syntax ruby-on-rails hashrocket

0
推荐指数
1
解决办法
3767
查看次数