草庐IT

vue的hash和history模式

全部标签

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-on-rails - Rails 控制台数据库模式检查

我是rails/ruby的新手,我想知道如何在rails控制台中仔细检查我的数据库模式是否正确构建在railsc中ActiveRecord::Base.connection.tables给了我的输出["schema_migrations","users","expense_pictures","income_pictures","income_texts","expense_texts"]如何在控制台中检查我是否正确构建了以下架构?从用户到IncomePictures和ExpensePictures是外键。IncomePictures到ExpensePictures也是其相应文本的外键

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)

ruby - 与 block 一起使用时,ruby Hash#merge 的行为是什么

它似乎没有被记录很多:hsh.merge(other_hash){|key,oldval,newval|block}→a_hashhttp://ruby-doc.org/core/classes/Hash.html#M002880 最佳答案 正如预期的那样,生成的散列将包含一个block返回的值,该block针对存在于两个正在合并的散列中的每个键:>>h1={:a=>3,:b=>5,:c=>6}=>{:a=>3,:b=>5,:c=>6}>>h2={:a=>4,:b=>7,:d=>8}=>{:a=>4,:b=>7,:d=>8}>>h1

ruby - 使用 :sql 模式格式时如何使 rake db :migrate generate schema. rb

如果在config/application.rb中使用这个选项:config.active_record.schema_format=:sql然后当你这样做时:rakedb:migrate它只转储db/structure.sql。我知道它没有使用db/schema.rb因为它使用的是:sql选项,但是你如何制作rakedb:migrate还生成db/schema.rb吗?我们需要它,因为RubyMine4.5和IntelliJIDea11使用db/schema.rb来自动完成列。 最佳答案 要生成/更新db/schema.rb,即使

ruby - ruby 的 String.hash 方法如何工作?

我只是ruby的新手。我见过一个字符串方法(String).hash。比如在irb中,我试过了>>"mgpyone".hash返回=>144611910这个方法是如何工作的? 最佳答案 hash方法是为所有对象定义的。参见documentation:GeneratesaFixnumhashvalueforthisobject.Thisfunctionmusthavethepropertythata.eql?(b)impliesa.hash==b.hash.ThehashvalueisusedbyclassHash.Anyhashva

ruby-on-rails - Rails 开发模式下的日志轮换?

对于Rails3.1(很快将是3.2),我有非常详细的日志,其中包含大量额外的工作人员信息。我通常会得到数GB的development.log文件。我看到过一些关于轮换生产日志的讨论,但是我没有发现任何似乎适用于development.log轮换的内容。您如何在每100.megabytes左右轮换您的development.log?或者我更喜欢实际截断文件头,以便只有最近的项目保留在日志中,最近的条目最多100MB。我已经玩了一点,并且越来越多地认为目前不存在这样的东西,也许我应该实现一些将以某种方式使用ruby​​File.truncate的东西,但是我到目前为止,我还不确定它在文件

ruby - grep on Hash 是什么意思?

{'a'=>'b'}.grep/a/=>[]>>{'a'=>'b'}.grep/b/=>[]它似乎与键或值不匹配。它会做一些我不挑剔的事情吗? 最佳答案 grep是在Enumerable上定义的,即它是一个不知道任何关于Hashes的通用方法。它对Enumerable的任何元素进行操作。Ruby没有键值对类型,它只是将Hash条目表示为双元素数组,其中第一个元素是键,第二个元素是值。grep使用===方法过滤掉元素。而且因为既不/a/===['a','b']也不/b/===['a','b']是真的,你总是得到一个空数组作为响应。试试

ruby - HTTParty parsed_response 返回一个 String 而不是 Hash

如果您收到响应代码200,HTTPParty的parsed_response方法会返回一个哈希值,否则无论网络服务器是否返回XML响应,它都会返回一个字符串。HTTParty.get(post_url).parsed_response.class#Dependsonresponsecode即使出现403,亚马逊也会提供XML(解释出了什么问题)。我错过了什么吗? 最佳答案 HTTPParty根据HTTP响应的Content-Typeheader解析其#parsed_response。验证该HTTPheader的值是什么。在您的情况下

ruby - 在生产模式下运行瘦服务器不会加载我的 Assets

当我像这样加载thin时:thinstart-eproduction并尝试访问我的一个页面,我在日志输出中得到了这个:cache:[GET/]misscache:[GET/assets/main-bd1ef4b153740fb69fd615304b87ad0d.css]misscache:[GET/assets/jqModal-8fa734bf4f58524b2799abd73ab7d34f.css]misscache:[GET/assets/jquery-544665ba1d5b4f793290421aafed85c9.js]misscache:[GET/assets/applica