小编Pau*_*ulC的帖子

Rails 3 - 验证两个字段之一已完成

我正在编写一个Rails应用程序来管理我们网站顶部的一系列横幅; 每个应链接到编辑器提供的URL或从下拉列表中选择的特定产品.

为了与其他检查保持一致,我想在模型中进行某种验证,以确保在保存时提供了一个(但不是两个)字段(产品ID或URL).

有没有一种validates方法来检查这个,还是我必须把这个检查放在控制器的某个地方呢?

validation model ruby-on-rails ruby-on-rails-3

14
推荐指数
2
解决办法
3256
查看次数

Sunspot_Rails - 页面上未定义的方法`searchable'

我有一个带有searchable块的模型,如下所示:

class Contact < ActiveRecord::Base
  searchable do
    text :contact_name, :company_name, :contact_email
  end  
end
Run Code Online (Sandbox Code Playgroud)

在控制器的index操作中,我正在调用Contact.new,它在页面上给出了一条错误消息,该消息当前正在我们的临时服务器上运行:

未定义的方法`searchable'用于#<Class:0xce0bf80>

堆栈跟踪searchable通过Contact.new控制器中的线指向模型中的块.

当我在本地(网页或控制台)或通过Staging服务器上的控制台运行代码时,此错误不会出现 - 仅在Staging网页上.

Solr服务在Staging服务器上正常运行,并且数据已成功编制索引.关于为什么它不在舞台上打球的任何理论都将被接受.

编辑

在回答Nick的问题时,Gemfile只有Sunspot的这一行: gem 'sunspot_rails'

对于Gemfile.lock,这些是我能看到的包含Sunspot或Solr引用的所有行:

GEM
  rsolr (0.12.1)
    builder (>= 2.1.2)
  sunspot (1.2.1)  
    escape (= 0.0.4)  
    pr_geohash (~> 1.0)  
    rsolr (= 0.12.1)  
  sunspot_rails (1.2.1)  
    nokogiri  
    sunspot (= 1.2.1)

DEPENDENCIES
  sunspot_rails
Run Code Online (Sandbox Code Playgroud)

solr sunspot ruby-on-rails-3 sunspot-rails sunspot-solr

13
推荐指数
3
解决办法
2728
查看次数

轮胎搜索和will_paginate - 未定义的方法`offset'

在使用ThinkingSphinx和Solr/Sunspot头痛之后,我们尝试将ElasticSearch和Tire作为我们的搜索后端 - 但我遇到了问题.

这是我在控制器中的搜索命令:

@results = Item.search params[:search], :page => ( params[:page] || 1 ), :per_page => 20
Run Code Online (Sandbox Code Playgroud)

这是视图的问题部分:

<%= page_entries_info @results %>
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是

undefined method `offset' for #<Tire::Results::Collection:0xa3f01b0>
Run Code Online (Sandbox Code Playgroud)

但只有当有超过一页的结果时.如果返回的项目少于20个,那么它们就会显示正常.

我在其他地方找到的唯一类似的报告问题是通过将:page:per_page参数传递给search函数来解决的,但我已经这样做了,但无济于事.

ruby-on-rails will-paginate elasticsearch

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