草庐IT

hash_name

全部标签

ruby hash 添加键/值 if 修饰符

我正在使用包含用于在我的MailChimpAPI中创建新订阅者的键/值对的ruby​​hash。user_information={'fname'=>'helloworld','mmerge1'=>'ProductX'ifuser.product_name.present?}显然,我收到了syntaxerror,unexpectedmodifier_if的语法错误...我基本上只想根据条件为真添加mmerge1。 最佳答案 你不能在散列初始化block中那样使用if。您必须在初始化哈希后有条件地添加新的键/值:user_inform

ruby - Ruby 中的默认哈希值 (Rubykoans.com -> about_hashes.rb)

我正在浏览RubyKoans中的about_hashes.rb.1个练习让我感到困惑:deftest_default_valuehash1=Hash.newhash1[:one]=1assert_equal1,hash1[:one]#okassert_equalnil,hash1[:two]#okhash2=Hash.new("dos")hash2[:one]=1assert_equal1,hash2[:one]#okassert_equal"dos",hash2[:two]#hm?end我的猜测是Hash.new("dos")使“dos”成为所有不存在键的默认答案。我说的对吗?

ruby-on-rails - Rails error resource_name - 设计帮助路由和渲染

我正在尝试呈现Devisegem的登录View,但出现错误,下面是我目前拥有的代码:这是我的views/users/shared/_links.html.erb:还有我的config/routes.rb:Densidste::Application.routes.drawdomatch'user/edit'=>'users#edit',:as=>:edit_current_usermatch'signup'=>'devise/users#new',:as=>:signupmatch'logout'=>'devise/sessions#destroy',:as=>:logoutdevis

ruby-on-rails - Ruby 风格问题 : storing hash constant with different possible values

这更像是一个风格问题,我想知道其他人是怎么做的。假设我的数据库中有一个名为“status”的字段用于博客文章。我希望它有几个可能的值,例如“草稿”、“等待审核”和“已发布”。显然我们不想每次都在这些魔法值中“硬编码”,那样不会很干。所以我有时做的是这样的:classPostSTATUS={:draft=>"draft",:awaiting_review=>"awaitingreview",:posted=>"posted"}...end然后我以后可以编写引用它的代码,如STATUS[:draft]或Post::STATUS[:draft]等这工作正常,但有一些我不喜欢的地方。如果您输入

ruby-on-rails - pg_search 使用 associated_against 给出错误 "column [model_name].[associated_column_name] does not exist"

我正在尝试使用pg_search来搜索关联模型。当我运行搜索时,出现错误“PG::Error:ERROR:columnplans.namedoesnotexist”。我正在“计划”模型中运行搜索,并尝试针对“地点”与列“名称”的关联进行搜索。连接这些的has_many:through模型是多态的。不知何故,sql查询将两者结合起来并抛出错误。我已经运行了associated_against迁移(railsgpg_search:migration:associated_against),搜索了文档,并寻找其他有错误的人,但一无所获,一定是我只是忽略了一些东西。如果我只是删除plan.rb

ruby - 我可以做 hash.has_key 吗? ('video' 或 'video2' ) ( ruby )

或者我可以做得更好hash.has_key?('videox')wherexis''什么都没有或一个数字?所以'video'、'video1'、'video2'会通过条件吗?当然我可以有两个条件,但万一我将来需要使用video3,事情会变得更复杂...... 最佳答案 如果您想要video的一般情况后跟一个数字而不明确列出所有组合,可以使用Enumerable中的几种方法。您可以将其与正则表达式结合使用。hash.keys是来自hash的键数组,^video\d$匹配视频后跟一个数字。#trueiftheblockreturnstr

ruby-on-rails - Rails 型号 : Name -- First, 最后

我是Rails的新手,正在为用户开发一个带有Profile模型的Rails3应用。在配置文件模型中,我希望有一个“名称”条目,并且我希望能够使用简单的语法访问它的逻辑变体,例如:user.profile.name="JohnDoe"user.profile.name.first="John"user.profile.name.last="Doe"这可能吗,还是我需要坚持使用“first_name”和“last_name”作为我在这个模型中的字段? 最佳答案 有可能,但我不推荐。如果我是你,我会坚持使用first_name和last_

ruby-on-rails - AASM 不适用于我的 rails 3 和 ruby​​ 1.8.7(未定义方法 `name' 为 nil :NilClass )

我正在使用Rails3.2.2,带有aasmgem,我有这样的Document模型:classDocumenttruestate:readstate:closedevent:viewdotransitions:to=>:read,:from=>[:unread]endevent:closedotransitions:to=>:closed,:from=>[:read,:unread]endend现在在我的控制台上:➜✗bundleexecrailscLoadingdevelopmentenvironment(Rails3.2.2)irb(main):006:0>Document.cre

ruby-on-rails - Rails 使用 Symbol 与 String 作为 params hash 中的键

如果我们使用字符串作为哈希键,Ruby需要计算字符串并查看它的内容(并计算其上的哈希函数)并将结果与​​已存储的键的(哈希)值进行比较在哈希中。如果我们使用一个符号作为散列键,则暗示它是不可变的,因此Ruby基本上可以将对象ID的(散列函数)与键的(散列)对象ID进行比较已经存储在哈希中。(快得多)。但问题在于Railsparams,它是HashWithIndifferentAccess的实例,如果我们编写params[:some_key]它会转换:som​​e_key到'some_key'然后它会尝试在参数散列中查找键。line159defconvert_key(key)key.ki

ruby - 允许传递 [hash_key] 的 rspec stub

如何创建rspec方法stub以允许接收散列键的方法的响应返回其值?这是我要测试的线路sub_total=menu.menu_items[item]*quantity并且我在rspec中使用这一行作为我的double测试stub。allow(menu).toreceive(:menu_items[item]).and_return(2.0)我的环境是用ruby​​2.2.0和spec3.1.7设置的但是我不断得到一个NameError:undefinedlocalvariableormethod`item'ruby代码defplace_order(item,quantity,menu)