草庐IT

generate_machine

全部标签

ruby - 使用 state_machine,如何从 :if lambda 内部访问事件参数

我正在使用state_machinegem来模拟纸牌游戏,我有一个转换条件,需要在绘制纸牌时知道事件参数。这是一些示例代码。classCardGamestate_machinedobefore_transition:drawing_card=>any,:do=>:drawn_cardevent:draw_cardtransition:drawing_card=>:end_of_round,:if=>lambda{|game|#Checkgoeshere,Irequireknowingwhichcardwastaken#whichispassedasargumentstotheevent

ruby-on-rails - 异常通知 gem "ERROR: Failed to generate exception summary"

使用exception-notificationgem已经有一段时间了,相当成功,但是我对每封电子邮件正文顶部的电子邮件条目感到恼火,就在实际错误之后。问题文本是:-------------------------------Request:-------------------------------ERROR:Failedtogenerateexceptionsummary:ActionView::Template::Error:Missingrack.input接下来的几行甚至总是相同的。这说明什么?我该如何解决这个问题,以便在任何有意义的事情上升到堆栈跟踪的顶部之前我不再看到这

ruby-on-rails - 为什么在 Ruby Event Machine 中使用线程?

既然说eventmachine是单线程的基于事件模型的异步I/O库(类似node.js),使用eventloop来处理并发请求,真的有必要关心和使用threading吗ruby应用层代码(即处理请求时的railsController)?我更习惯于node.js模型,您实际上只需将代码包装在回调中,然后一切都会为您处理。(对产生新线程的kqueue、epoll等的select()系统调用在较低级别的C++实现中处理),而且,ECMAscript本质上没有线程。最近在学习EventMachine的时候看到了这段ruby代码:Thread=Thread.currentThread.new{E

ruby rubocop : how to freeze an array constant generated with splat

我正在分配一个这样的数组常量:NUMS=*(2..9)Rubocop说C:卡住分配给常量的可变对象。NUMS=*(2..9)^^^^^所以我试试NUMS=*(2..9).freezeRubocop说C:卡住分配给常量的可变对象。NUMS=*(2..9).freeze^^^^^^^^^^^^尝试过NUMS=(*(2..9)).freezeRubocop说E:意外的标记tRPAREN(使用Ruby2.0解析器;在AllCops下使用TargetRubyVersion参数进行配置)NUMS=(*(2..9)).freeze^尝试过NUMS=[1,2,3,4,5,6,7,8,9].freeze

ruby-on-rails - rails script/generate 默认跳过不必要的文件

自从我开始使用rspec等之后,Script/generate变得非常烦人。我不再需要单元测试文件和fixtures,但是script/generate无论如何都会生成它们。是否可以将--skip-fixtures和--skip-test设置为系统范围(或至少项目范围)的默认设置? 最佳答案 您可以编辑您的应用程序脚本/生成文件以自动附加选项#!/usr/bin/envrubyARGV 关于ruby-on-rails-railsscript/generate默认跳过不必要的文件,我们在S

ruby-on-rails - 炼油厂 CMS : generating migrations for existing models within an engine

我想向我在RefineryCMS引擎中创建的模型添加一个属性。我知道我可以执行以下操作:rails生成迁移AddPartNumberToProductspart_number:string手动将迁移文件从db/migrate移动到vendor/extensions/products/db/migrate但是是否有命令首先将迁移生成到正确的文件夹中?谢谢! 最佳答案 根据@parndt(theleaddeveloperoftheRefineryproject),我上面概述的方法是正确的。

ruby-on-rails - rails 生成器 : generate files based on already existing rails files

我想制作一个生成器,根据应用程序中已有的文件(例如,View或Controller)创建文件(和目录等)。所以如果我们有这样设置的View-app-views-layouts-application.html.erb-users-index.html.erb-show.html.erb-etc...我想基于它们创建我能做的文件(只用ruby​​)directories=Dir.entries("#{Rails.root}/app/views")directories.eachdo|directory|unlessdirectory=="."ordirectory==".."files=

ruby - 防止 JSON pretty_generate 转义 Unicode

有什么方法可以防止Ruby的JSON.pretty_generate()方法转义Unicode字符吗?我有一个JSON对象如下:my_hash={"my_str":"\u0423"};运行JSON.pretty_generate(my_hash)返回值\\u0423。有什么办法可以防止这种行为吗? 最佳答案 在你的问题中,你有一个由6个unicode字符组成的字符串"\","u","0","4","2","3"(my_hash={"my_str"=>'\u0423'}),而不是由1个"У"字符组成的字符串("\u0423",注意双引

ruby-on-rails - 使用 state_machine gem,有没有办法将事件设为私有(private)/ protected ?

我想知道在使用state_machinegem时是否有办法将状态事件设为私有(private)?我有三种状态未付款、待处理、已付款。当收据处于未付款状态时,可以触发一个事件来向用户收费。这会将收据切换为待定状态(同时与商家服务对话)一旦完成,它将调用支付事件,从而将状态设置为已支付。收据类的用户在技术上可以调用支付事件,这会将收据切换为已付款,即使它没有通过商家运行。注意:这是一个人为的例子......我是私有(private)和protected方法的坚定支持者,我想知道如何在状态机实现的上下文中使用它们。 最佳答案 我假设您正在

ruby - state_machine ruby​​ gem 中状态的 human_name

我使用gemstate_machine-Official每个州都可以有“人名”。通过我尝试过的文档和API:在my_model.rb中state_machine:initial=>:newdostate:new,:human_name=>'Addedandnotaccepted'...在my_view.haml中%p=MyModel.human_state_name(@item.state_name)%p=@item.human_state_name两种变体都只返回"new"而不是“已添加但未接受”。我该做什么?我在设置human_name或获取human_name时出错了吗?更新工作