ruby-on-rails - 在 Soulmate::Loader 中添加两个参数

标签 ruby-on-rails redis

我的模型中有两个字段,我想将它们添加到 Soulmate::Loader 中:

例如,我的“人”模型有姓名和电子邮件字段。然后我想在 Soulmate 中加载:

loader = Soulmate::Loader.new("people")
    loader.add("term" => name, "id" => self.id, "data" => {
        "link" => Rails.application.routes.url_helpers.person_path(self)
    }) 

我想在 loader.add 中添加 nameemail。但我不能。

def load_into_soulmate
    loader = Soulmate::Loader.new("people")
    loader.add("term" =>{ name , email }, "id" => self.id, "data" => {
        "link" => Rails.application.routes.url_helpers.person_path(self)
    })
end

def load_into_soulmate
    loader = Soulmate::Loader.new("people")
    loader.add("term" =>{ "name" => name ,"email" =>  email }, "id" => self.id, "data" => {
        "link" => Rails.application.routes.url_helpers.person_path(self)
    })
end

当我使用 Person.find_each(&:save) 将数据添加到 redis 时出现错误:

ArgumentError: ArgumentError
from /var/lib/gems/2.2.0/gems/soulmate-1.1.0/lib/soulmate/loader.rb:31:in `add'

但一切都错了。

最佳答案

我认为你必须使用别名。

def load_into_soulmate
    loader = Soulmate::Loader.new("people")
    loader.add("term" =>"name", "id" => self.id, "aliases" => [email], "data" => {
        "link" => Rails.application.routes.url_helpers.person_path(self)
    })
end

关于ruby-on-rails - 在 Soulmate::Loader 中添加两个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28688684/

相关文章:

ruby-on-rails - 获取自定义 attr_accessor 的未定义方法 `validates_presence_of'

ruby-on-rails - 我是否需要在我的 Rails 应用目录中为 SSL 保留 server.key 和 server.csr?

ruby-on-rails - Rails 从片段缓存中遗漏了一些部分

spring - 使用 RedisTemplate (Spring) 存储不同的数据

networking - 为什么客户端连接数会影响Redis性能?

javascript - Redis 命令对键进行排序

ruby-on-rails - 如何在 Rails 中将 will_paginate 与嵌套资源一起使用?

ruby-on-rails - 错误 I18n::InvalidLocaleData

redis - 我的任务队列 (kue.js) 遇到乱序问题

javascript - 存储/记录来自 socket.io 和回放的所有发射数据