我已将我的应用设置为使用Soulmate和soulmate.js进行自动完成。它搜索两个模型 - 用户和书籍。但是,我有多个用户角色 - 一些是作者,一些是读者。我只希望作者出现在结果中。
根据用户的角色,有没有办法限制新用户注册时添加到Redis的内容?
user.rb中的(使用" if role =" author")无法正常工作
def load_into_soulmate
loader = Soulmate::Loader.new("authors")
loader.add("term" => fullname, "id" => self.id, "data" => {
"link" => Rails.application.routes.url_helpers.user_path(self)
}) if self.role = "author"
end
def remove_from_soulmate
loader = Soulmate::Loader.new("authors")
loader.remove("id" => self.id)
end
在pages.js
中$('#search').soulmate({
url: '/search/search',
types: ['books','authors'],
renderCallback : render,
selectCallback : select,
minQueryLength : 2,
maxResults : 5
})
或者,我可以将角色添加到Redis存储的位置,然后告诉js仅为角色="作者"?
的用户提供服务谢谢!
答案 0 :(得分:1)
我在user.rb中的after_save中使用条件解决了它:
after_save :load_into_soulmate, :if => :is_author
和
def is_author
if self.role == "author"
true
else
false
end
end