小编Igg*_*ggy的帖子

一起使用Devise和has_secure_password时出现ArgumentError

在添加Devise gem之前,我有一个工作模型。安装Devise并运行后rails generate devise User,我开始出现此错误。

每当我去Rails控制台输入

User.first

要么

User.create(username: "Iggy1", email: "iggy1@gmail.com", password: "helloworld", password_confirmation: "helloworld")

它总是返回

  User Load (0.3ms)  SELECT  "users".* FROM "users"  ORDER BY "users"."id" ASC LIMIT 1
ArgumentError: wrong number of arguments (0 for 1)
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/devise-4.2.0/lib/devise/models/database_authenticatable.rb:146:in `password_digest'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/activemodel-4.2.5/lib/active_model/serialization.rb:108:in `block in serializable_hash'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/activemodel-4.2.5/lib/active_model/serialization.rb:108:in `each'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/activemodel-4.2.5/lib/active_model/serialization.rb:108:in `serializable_hash'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.5/lib/active_record/serialization.rb:17:in `serializable_hash'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/devise-4.2.0/lib/devise/models/authenticatable.rb:114:in `serializable_hash'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/devise-4.2.0/lib/devise/models/authenticatable.rb:120:in `inspect'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/railties-4.2.5/lib/rails/commands/console.rb:110:in `start'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/railties-4.2.5/lib/rails/commands/console.rb:9:in `start'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:68:in `console'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /Users/iggy/.rvm/gems/ruby-2.2.2/gems/railties-4.2.5/lib/rails/commands.rb:17:in `<top (required)>'
    from …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails devise

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

删除数组中的一个最小元素,同时保留Ruby中的顺序

简单的问题,但不知怎的,我想不出一个解决方案.如何删除随机整数数组中的单个最小元素?

a = [7, 5, 3, 2, 1, 4]
b = [2, 2, 1, 1, 2]
Run Code Online (Sandbox Code Playgroud)

这就是我提出的:

def remove_it(num)
    num.delete(num.sort[0])
end
Run Code Online (Sandbox Code Playgroud)

代码可以使用a,但不能b.它删除这两个 1 "S IN b.我只需要删除一个1.

如何删除数组中的最小数字并保留顺序?

ruby

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

如何从包含数字+字符的字符串中提取数字到Ruby中的数组?

我有包含整数和字符的字符串,我需要提取数组中的所有数字,例如:

str = "achance123for84faramir3toshowhis98quality"
#=> [123, 84, 3, 98] #Desired output
Run Code Online (Sandbox Code Playgroud)

我无法将它们组合在一起.我试过了:

str.split('').select {|el| el.match(/[\d]+.*/)}
#=> ["1", "2", "3", "8", "4", "3", "9", "8"]

str.split('').select {|el| el.match(/[\d]+[\D]+/)}
#=> []
Run Code Online (Sandbox Code Playgroud)

如何维护所有整数的分组并将它们列在数组中?假定它将包含唯一的数字和字符(AZ).没有空格/非单词字符.所有人都会小一些.

(它们不必转换为整数.我只是遇到问题想出正则表达式将它们分组.如果有一个没有正则表达式的解决方案,那也太棒了!)

ruby regex arrays string

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

如何对数组内的整数求和?

a = [[5, 6], [6, 5], [7, 4], [1, 0, 0], [9, 9], [6, 8], [8, 6], [1, 8, 0], [9, 0]]
Run Code Online (Sandbox Code Playgroud)

如何对内部数组中的整数求和并返回内部数组之和的数组?

我需要它返回[(5+6), (6+5), (7+4), (1+0+0), ...],从而[11, 11, 11, 1, 18, 14, 14, 9, 9]

ruby arrays

0
推荐指数
2
解决办法
64
查看次数

Ruby递归调用自己的函数作为参数

如何在Ruby中调用"多重递归函数",将函数作为一个参数一遍又一遍?

由此,我不是指通常的递归函数,如斐波那契序列.假设我有一个叫做的函数hey().它"Hey"在函数内调用函数时打印字符串的次数.澄清:

hey() #=> "Hey "
hey(hey()) #=> "Hey Hey "
hey(hey(hey())) #=> "Hey Hey Hey "
Run Code Online (Sandbox Code Playgroud)

我试过了

def hey(*args)
    "Hey "
end

def hey(*args)
    "Hey " + hey(*args)
end

def hey(n)
    "Hey " + hey(n)
end
Run Code Online (Sandbox Code Playgroud)

我以前从未见过这样的例子.我知道这是可行的,但不知道如何.是*args需要吗?我需要传递常规参数而不是*args吗?

ruby recursion function

0
推荐指数
1
解决办法
41
查看次数

Active Model Serializer格式化JSON显示

我在Rails应用程序中使用Active模型序列化程序,我想重构显示内容:

每当我访问http:// localhost:3000 / api / users / 1时,我都会看到:

{"data":{"id":"1","type":"users","attributes":{"username":"Iggy1"},"relationships":{"items":{"data":[{"id":"1","type":"items"},{"id":"7","type":"items"}]},"lists":{"data":[{"id":"1","type":"lists"},{"id":"8","type":"lists"},{"id":"14","type":"lists"},{"id":"15","type":"lists"},{"id":"17","type":"lists"}]}}}}
Run Code Online (Sandbox Code Playgroud)

我如何使其看起来像:

{
    "data": {
        "id": "1",
        "type": "users",
        "attributes": {
            "username": "Iggy1"
        },
        "relationships": {
            "items": {
                "data": [{
                    "id": "1",
                    "type": "items"
                }, {
                    "id": "7",
                    "type": "items"
                }]
            },
            "lists": {
                "data": [{
                    "id": "1",
                    "type": "lists"
                }, {
                    "id": "8",
                    "type": "lists"
                }, {
                    "id": "14",
                    "type": "lists"
                }, {
                    "id": "15",
                    "type": "lists"
                }, {
                    "id": "17",
                    "type": "lists"
                }]
            }
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

api json ruby-on-rails active-model-serializers

0
推荐指数
1
解决办法
502
查看次数

Ruby - 将字符串转换为哈希值,每个字符作为键,索引作为值?

我试图将给定的字符串转换为散列,每个字符串的字符= key和index = value.

例如,如果我有str = "hello",我希望它转变为{"h"=>0, "e"=>1, "l"=>2, "l"=>3, "o"=>4}.

我创建了一个方法:

def map_indices(arr)
  arr.map.with_index {|el, index| [el, index]}.to_h
end
#=> map_indices('hello'.split(''))
#=> {"h"=>0, "e"=>1, "l"=>3, "o"=>4}
Run Code Online (Sandbox Code Playgroud)

问题是它跳过了第一个l.如果我颠倒了elindex: 的顺序arr.map.with_index {|el, index| [index, el]}.to_h,我会把所有字母拼写出来:{0=>"h", 1=>"e", 2=>"l", 3=>"l", 4=>"o"}

但是当我invert这样做时,我会得到同样的哈希,跳过其中一个l.

map_indices('hello'.split('')).invert
#=> {"h"=>0, "e"=>1, "l"=>3, "o"=>4}
Run Code Online (Sandbox Code Playgroud)

为什么这样表现如此?我怎么才能打印出来{"h"=>0, "e"=>1, "l"=>2, "l"=>3, "o"=>4}

ruby hash

0
推荐指数
1
解决办法
694
查看次数

如何使用jquery为点击动画一个动画?

div当我点击另一个时,我有一个想要动画的动画div.我知道这可以通过jQuery轻松完成,但不知怎的,我无法让它工作.

我曾尝试SO建议在这里添加

$('#button').onClick(function(){
$('#target_element').addClass('.animate_class_name');});
Run Code Online (Sandbox Code Playgroud)

但什么都没发生.

这是小提琴https://jsfiddle.net/rdfbcq3j/2/.目标是在click_me推动时将红色圆圈div对象设置为矩形.最好的方法是什么?

html css jquery

0
推荐指数
1
解决办法
85
查看次数

如何在javascript中删除一个基于索引的字符?

我在找到在JS中完成此操作的正确方法时遇到问题.我想迭代字符串的每个字符(假设所有较低的字符串),同时i只删除字符.

所以,如果我有字符串abc,我将迭代它三次,它将打印:

'bc' //0th element is removed
'ac' //1st element is removed
'ab' //2nd element is removed
Run Code Online (Sandbox Code Playgroud)

我以为我可以用它replace,但它不适用于具有多个相同字符的字符串.

像这样的东西:

str = 'batman';

for(var i = 0; i < str.length; i++){
  var minusOneStr = str.replace(str[i], '');
  console.log(minusOneStr);
}

"atman"
"btman"
"baman"
"batan"
"btman" //need it to be batmn
"batma" 
Run Code Online (Sandbox Code Playgroud)

我意识到这并没有工作,因为str.replace(str[i], '');str[i]a,它将替换的第一个实例a.它永远不会取代第二个abatman.我查了一下substring,splice,slice方法,但都不适合MF的目的.

我怎么能做到这一点?

javascript string

0
推荐指数
1
解决办法
762
查看次数

如果变量等于方法,Ruby的变量等于?

我正在阅读createyourlang书籍,并看到了一个如下所示的代码片段:

  tokenizer = if identifier = chunk[IDENTIFIER, 1]
                IdentifierTokenizer.new(identifier, tokenizer).tokenize
              elsif constant = chunk[CONSTANT, 1]
                ConstantTokenizer.new(constant, tokenizer).tokenize
              elsif number = chunk[NUMBER, 1]
                ...
Run Code Online (Sandbox Code Playgroud)

我觉得在同一条线上有两个相同的标志令人困惑.有什么意义A = if B = C

如果你想知道什么是块,假设chunk是字符串"hello"并且chunk[IDENTIFIER,1]等于,"hello"而另一个chunk[OTHER_CONST,1]等于nil.该功能有效.您可以在此处找到源代码仓库.我主要是好奇如何阅读这个函数/如果有更好的方法来重写这段代码以使其更具可读性?

ruby if-statement

0
推荐指数
1
解决办法
155
查看次数

Ruby调用哈希值返回nil

我有一个代码

def pitch_class(note)
    note_hash = {:C=>0, :D=>2, :E=>4, :F=>5, :G=>7, :A=>9, :B=>11} 
    note_hash[:note]
end
Run Code Online (Sandbox Code Playgroud)

但每当我尝试调用其中的值时,返回nil.

pitch_class("C")
#=> nil
Run Code Online (Sandbox Code Playgroud)

如何使用键作为参数调用值?谢谢!

ruby hash key-value

-3
推荐指数
1
解决办法
620
查看次数