我正在开发一个 ruby 项目,我们计划使用 ruby 字符串进行一些操作。有些操作很简单(例如计算单词数),而其他操作则更复杂(例如检查给定字符串是否采用正确的语言)。
实现此目的的一种可能方法是使用String额外的方法修补类,而不修改任何现有方法"some string".word_count,并添加和 等行为"some string".cjk?。
另一种方法FileUtils是创建一个充满方法的类或模块,并始终使用字符串作为参数,例如OddClassName.word_count("some string")和OddClassName.cjk?("some string")。由于可读性,我们更喜欢第一个。
我知道猴子修补第一个替代方案中描述的基本类可能会发生名称冲突。但是,如果这是主应用程序,而不是库,我应该担心它吗?
所以,问题是:
请提出任何替代方案。
我正在尝试测试我的代码上是否使用载波更改了图像,但我找不到这样做的方法.即使文件无效,似乎对象也被标记为已更改,因此它并未真正更改.
查看以下输出:
(rdb:1) job.translated_xliff
#<XliffUploader:0xcd8b380 ...>
(rdb:1) job.changed?
false # As expected, didn't changed yet
(rdb:1) job.translated_xliff = "foo"
"foo"
(rdb:1) job.changed?
true # Changed? "foo" is not a valid file. Lets see the file again...
(rdb:1) job.translated_xliff
#<XliffUploader:0xcd8b380 ...> # same object ID!
Run Code Online (Sandbox Code Playgroud)
如何检查我的代码上是否真的更改了此对象?
我似乎无法找到关于这两者之间的区别的明确解释.我还想指出,我也不太了解文字和价值观之间的区别.
布尔文字是否使用布尔对象?
Date/Time: 2013-05-22 21:31:31.863 -0400
OS Version: iOS 6.1.3 (10B329)
Report Version: 104
Exception Type: EXC_CRASH (SIGSEGV)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread: 1
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 CoreFoundation 0x3203f950 -[NSArrayM dealloc] + 128
1 Foundation 0x32999218 -[NSFunctionExpression dealloc] + 56
2 Foundation 0x329991d8 -[NSKeyPathExpression dealloc] + 36
3 Foundation 0x3299914c -[NSComparisonPredicate dealloc] + 40
4 CoreData 0x31f6b672 -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:] + 1362
5 CoreFoundation 0x32045034 _CFXNotificationPost + 1424
6 Foundation 0x3295b594 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
7 …Run Code Online (Sandbox Code Playgroud) 我应该在哪里用RSpec测试授权?
使用RSpec创建Rails应用程序时,有三个文件夹似乎足够:
如果用户登录,我应该测试哪一个?我应该测试多种规格类型吗?
请参阅以下输出:
1.9.3p194 :001 > player = Player.randomize_for_market
=> #<Player id: nil, name: "Gale Bridges", age: 19, energy: 100, attack: 6, defense: 4, stamina: 5, goal_keeping: 3, power: 4, accuracy: 5, speed: 5, short_pass: 5, ball_controll: 4, long_pass: 6, regain_ball: 5, contract_id: nil, created_at: nil, updated_at: nil>
1.9.3p194 :002 > player.save!
(0.2ms) BEGIN
SQL (20.5ms) INSERT INTO "players" ("accuracy", "age", "attack", "ball_controll", "contract_id", "created_at", "defense", "energy", "goal_keeping", "long_pass", "name", "power", "regain_ball", "short_pass", "speed", "stamina", "updated_at") VALUES ($1, $2, $3, $4, $5, …Run Code Online (Sandbox Code Playgroud) 我已经转过来了,使用to_query方法将hash转换为params.
如何将其变回哈希?
我试过这个:
require 'rack'
@tester = Rack::Utils.parse_nested_query(params[:search])
Run Code Online (Sandbox Code Playgroud)
在视图中: <%= @tester.class %>
这给了NilClass.
参数是:
"search"=>"fields%5B%5D=exhb_0&fields%5B%5D=exh0_1&fields%5B%5
D=t_g_a&fields%5B%5D=hp_1&fields%5B%5D=s1&fields%5B%5D=overflade_0&railing%5B%5D
=A-3&railing_m=0&type%5B%5D=ltrappa&wood%5B%5D=wood_6"
Run Code Online (Sandbox Code Playgroud) 在ruby中,有一个叫做的函数gsub,其中g代表globalsub代表substitution.
什么p从preg_match?
我想reg是为了regular而且match确实如此match.那是对的吗?
使用Rails 4播放的时候,我注意到,它定义了一个before_action过滤器set_[model],即要求采取的行动show,edit,update和destroy.
事实上它非常有用,但我认为没有对所有成员行动都没有多大意义.毕竟,如果您正在使用成员操作,您希望对该成员执行操作,因此您需要在某个时刻从数据库中恢复它.
请注意,通过成员操作,我还意味着routes.rb在members块中配置的那些操作.
是否有直接的方法来做到这一点,没有列出before_action过滤器上的所有成员操作?
编辑:为了澄清,整点是使用一些rails魔法来获取所有成员路由并生成将在其中传递的数组:only.所以我可以做点什么
before_action set_model only: all_member_routes
Run Code Online (Sandbox Code Playgroud)
其中all_member_routes一段代码返回我的模型的所有成员路由.
甚至更好,
before_action set_model, only_member_actions: true
Run Code Online (Sandbox Code Playgroud) 到目前为止,我总是猛拉或用y2y或删除2行d2d.
我发现你也可以做y1CR(CR是enter).除了数字1出现在命令上,它实际上猛拉了两行.
它也显示在底部2 lines yanked,不会发生使用y2y.
我找不到任何关于vim帮助的提及.这引出了两个问题:
编辑:虽然有很多的答案,没有一个人如果地址y2j和y1<CR>真的等同于每一种情况下,如果是这样,为什么2 lines yanked只在底部会出现只为<CR>命令.
ruby ×3
activerecord ×2
carrierwave ×1
core-data ×1
ios ×1
javascript ×1
php ×1
rspec ×1
tdd ×1
testing ×1
vim ×1
yaml ×1