小编ndn*_*kov的帖子

确定ActiveRecord对象是否为新

如何检查ActiveRecord对象是新对象还是已经存在?

activerecord ruby-on-rails

209
推荐指数
2
解决办法
8万
查看次数

在rails中清除会话变量的最佳方法是什么?

session[:message] = nil
Run Code Online (Sandbox Code Playgroud)

这是销毁会话变量的最佳方法吗?

注意:我不想清除所有会话变量reset_session.

session ruby-on-rails

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

如何清除sidekiq的所有工作?

我在Rails应用程序中使用sidekiq作为后台任务.现在工作的数量变得更多,所以我想清除所有的工作.我在控制台中尝试了以下命令

Sidekiq::Queue.new.clear
Run Code Online (Sandbox Code Playgroud)

但它给出了以下错误.

NameError: uninitialized constant Sidekiq::Queue 
Run Code Online (Sandbox Code Playgroud)

如何清除sidekiq的所有工作?

ruby ruby-on-rails sidekiq

101
推荐指数
9
解决办法
6万
查看次数

Rspec测试redirect_to:返回

你如何redirect_to :back在rspec中测试?

我明白了

ActionController::RedirectBackError:在此操作的请求中设置了
No HTTP_REFERER,因此redirect_to :back无法成功调用.如果这是测试,请确保指定request.env["HTTP_REFERER"].

我如何设置HTTP_REFERER我的测试?

redirect rspec ruby-on-rails rspec2

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

如何在Rails控制器中返回HTTP 204

这似乎是基本的,但我是Ruby/Rails的初学者.我需要简单地在控制器中返回HTTP 204.将

respond_to do |format|
  format.html  
end
Run Code Online (Sandbox Code Playgroud)

返回204?

ruby ruby-on-rails

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

在JSON模式中定义枚举数组的正确方法

我想用JSON模式数组来描述,该数组应包含零个或多个预定义值.为简单起见,让我们这些可能的值:one,twothree.

正确的数组(应该通过验证):

[]
["one", "one"]
["one", "three"]
Run Code Online (Sandbox Code Playgroud)

不正确:

["four"]
Run Code Online (Sandbox Code Playgroud)

现在,我知道"enum"应该使用该属性,但我找不到相关信息放在哪里.

选项A(下"items"):

{
    "type": "array",
    "items": {
        "type": "string",
        "enum": ["one", "two", "three"]
    }
}
Run Code Online (Sandbox Code Playgroud)

选项B:

{
    "type": "array",
    "items": {
        "type": "string"
    },
    "enum": ["one", "two", "three"]
}
Run Code Online (Sandbox Code Playgroud)

arrays enums json jsonschema

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

Ruby中的失败与提升:我们真的应该相信风格指南吗?

Ruby提供了两种以编程方式引发异常的可能性: raise并且fail都是Kernel方法.根据这些文件,它们完全相同.

出于习惯,我raise到目前为止只使用过.现在我找到了几个建议(例如这里),raise用于捕获异常,以及fail用于不应处理的严重错误.

但它真的有意义吗?当你编写一个类或模块,并在内心深处产生问题时fail,你正在查看代码的编程同事可能会很高兴地了解你的意图,但使用我的代码的人很可能不会看到我的代码,无法知道,异常是由a raise还是by 引起的fail.因此,我谨慎使用raisefail不会对他的决定产生任何影响,无论她是否应该处理.

有人会在我的论点中看到瑕疵吗?还是有其他标准,我可能想用fail而不是raise

ruby coding-style exception conventions

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

如何解冻Ruby中的对象?

在Ruby中,有Object#freeze阻止进一步修改对象:

class Kingdom
  attr_accessor :weather_conditions
end

arendelle = Kingdom.new
arendelle.frozen? # => false
arendelle.weather_conditions = 'in deep, deep, deep, deep snow'
arendelle.freeze
arendelle.frozen? # => true
arendelle.weather_conditions = 'sun is shining'
  # !> RuntimeError: can't modify frozen Kingdom

script = 'Do you want to build a snowman?'.freeze
script[/snowman/] = 'castle of ice'
  # !> RuntimeError: can't modify frozen String
Run Code Online (Sandbox Code Playgroud)

但是,没有Object#unfreeze.有没有办法解冻冻结的王国?

ruby

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

Ruby如何写入Tempfile

我正在尝试创建一个Tempfile并将一些文本写入其中.但是我在rails控制台中遇到了这种奇怪的行为

t = Tempfile.new("test_temp") # => #<File:/tmp/test_temp20130805-28300-1u5g9dv-0>
t << "Test data"              # => #<File:/tmp/test_temp20130805-28300-1u5g9dv-0>
t.write("test data")          # => 9
IO.read t.path                # => ""
Run Code Online (Sandbox Code Playgroud)

我也试过,cat /tmp/test_temp20130805-28300-1u5g9dv-0但文件是空的

我错过了什么吗?或者写什么是正确的方法Tempfile

仅供参考我使用的是ruby 1.8.7和rails 2.3.12

ruby file-io ruby-on-rails

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

嵌套哈希中的Form_tag参数

我有一个没有与之关联的模型的表单,所以我使用form_tag而不是form_for.正如所料,当用户提交表单时,每个字段都包含在params散列中.但是表单会发生很大变化,我宁愿在params哈希中有一个哈希值,它将保存所有表单字段值,这样我每次更改表单时都不必更改控制器.

有没有办法将表单字段值放入像form_for那样的嵌套哈希?我希望能够通过做类似的事情来获取所有表单字段并将它们转换为jsonparams[:form_fields].to_json

ruby-on-rails

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