Tag: ruby on rails 3

Ransack搜索,如何通过拆分输入搜索参数来搜索每个单词

我目前正在尝试使用ransack gem在Rails中对模型进行搜索。 目前我正在使用基本设置。 控制器: def index @q = Person.search(params[:q]) @people = @q.result(:distinct => true) end 视图: 我已经设法找到很多关于在多个字段上进行搜索的信息,但是,我没有设法找到任何东西来帮助我拆分:q参数,从而使我能够搜索每个(未知数量)搜索字符串中的单词以搜索的forms输入search for ??? AND ??? AND ??? … search for ??? AND ??? AND ??? … search for ??? AND ??? AND ??? … ,而不是在一个部分中搜索整个字符串 有人能指出我正确的方向吗?

用户,评论关联不起作用,comment.user.email返回No方法错误?

我有以下模型与下面给出的关联: – class Comment < ActiveRecord::Base belongs_to :post belongs_to :user end class Post < ActiveRecord::Base belongs_to :user has_many :comments end class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable attr_accessible :email, :password, :password_confirmation, :remember_me has_many :posts has_many :comments end 但是,当我尝试访问评论的用户详细信息时,我没有获得方法错误:(。 浏览器中显示的错误如下: – undefined method `email’ for nil:NilClass 1: 2: 3: Comment written by: […]

在Rails 3中通过多列有效地对行进行排序

我有一个表名称事务与以下列 created_at | debit | credit | balance | account_id 2012-2-2 02:22:22 | 3000 | 0 | 0 | 8 2012-2-2 07:22:22 | 500 | 1000 | 0 | 8 2012-2-2 09:22:22 | 0 | 8000 | 0 | 8 2012-3-3 19:17:20 | 1000 | 0 | 0 | 8 2012-3-3 04:02:22 | 0 | […]

作业无法加载:未初始化的常量Syck :: Syck

我在后台使用延迟作业(collectiveideas fork)运行方法 我正在运行的方法如下所示,它取出了isbn的价格: def update_prices(isbn13) @amazon = Nokogiri::XML(open(“http://www.amazon.com/s/?url=search-alias%3Daps&field-keywords=#{isbn13}”)) price = @amazon.search(‘span.listprice’).first.text.gsub(‘$’, ”) book = Book.find_by_isbn13(isbn13) book.update_attribute(:amazon_us_price, price) end handle_asynchronously :update_prices 现在,当我运行此作业时,作业将添加到数据库中,但在运行时遇到错误。 错误是非常大的,但我认为它的要点来自第一行:作业未能加载:未初始化的常量Syck :: Syck。 {Job failed to load: uninitialized constant Syck::Syck. Handler: “— !ruby/struct:Delayed::PerformableMethod object: &id005 !ruby/object:BooksController _action_name: show _config: !omap [] _env: &id001 GATEWAY_INTERFACE: CGI/1.1 PATH_INFO: /books/9780425160985 QUERY_STRING: \”\” REMOTE_ADDR: 127.0.0.1 REMOTE_HOST: localhost REQUEST_METHOD: […]

在为我的Rails应用运行它之前检查Faye服务器是否存在

关于我在此发现的先前问题: 启动Rails服务器时自动运行Faye服务器 我每次启动Rails时都在运行Faye服务器。 但是,这意味着当我运行Rails服务器,Rails控制台或任何其他Rails相关时,它正在尝试运行Faye服务器。 有没有办法检查Faye服务器是否已经运行? 如果是,不尝试运行新的? 或者这可能不是最好的方法,我欢迎所有的想法和提示。

在Rails中的控制器和视图中使用的辅助方法

我知道我可以在Rails中的helper文件夹中的Helper类中放置一个帮助器方法。 然后该方法可以在任何视图中使用。 我知道我可以在ApplicationController类中放置方法,并且该方法可以在任何控制器中使用。 放置控制器和视图中经常使用的方法的适当位置在哪里?

如何防止ActiveRecord写入数据库?

我有一个特殊的用例,我想创建一个接受块的方法,这样在该块内发生的任何事情都不会写入数据库。 显而易见的答案是使用这样的交易: def no_db ActiveRecord::Base.transaction do yield raise ActiveRecord::Rollback end end 但麻烦的是,如果我的no_db方法在另一个事务块中使用,那么我将在嵌套事务的情况下使用。 这里的缺点是嵌套事务只有MySQL支持,我需要支持PG,但更重要的是SQLite(用于测试)。 (我知道PG是通过保存点支持的,性能有多可靠?)。 这种方法的另一个问题是它看起来效率非常低,将数据写入数据库,然后将它们回滚。 如果我可以做这样的事情会更好: def no_db_2 # ActiveRecord::Base.turn_off_database yield # ActiveRecord::Base.turn_on_database end 有这样的方法吗? 或者类似于我正在寻找的方法? 我认为它需要相当低的水平.. (Rails版本是3.0.5,但如果有一个优雅的Rails 3.1解决方案,我会很高兴)

Heroku预编译资产失败

更新后,我的应用程序突然无法运行。 不确定出了什么问题。 基本上,当我推送到heroku时,我得到这些错误: Precompiling assets failed, enabling runtime asset compilation Injecting rails31_enable_runtime_asset_compilation 再高一点: rake aborted! Unexpected token: operator (>) (line: 19073, col: 9, pos: 605247) Error at new JS_Parse_Error (/tmp/execjs20121211-811-1z5vum.js:1720:22) at js_error (/tmp/execjs20121211-811-1z5vum.js:1728:15) at croak (/tmp/execjs20121211-811-1z5vum.js:2189:17) at token_error (/tmp/execjs20121211-811-1z5vum.js:2196:17) at unexpected (/tmp/execjs20121211-811-1z5vum.js:2202:17) at /tmp/execjs20121211-811-1z5vum.js:2580:17 at maybe_unary (/tmp/execjs20121211-811-1z5vum.js:2665:27) at expr_op (/tmp/execjs20121211-811-1z5vum.js:2685:45) at expr_ops (/tmp/execjs20121211-811-1z5vum.js:2692:24) at maybe_conditional […]

如何在RSpec和Rails中处理模拟嵌套资源?

我有一个用户阅读列表的嵌套资源(一个用户has_many阅读列表)。 我试图模拟我的控制器规格中的所有内容,但无法保持简洁。 这是#show操作的前面代码: @reading_lists = mock(“Reading lists”) @reading_lists.stub!(:find).with(“1”).and_return(@reading_list) @user = mock_model(User, :reading_lists => @reading_lists) User.stub!(:find).with(“1”).and_return(@user) get :show, :user_id => “1”, :id => “1” 正在测试: def show @user = User.find(params[:user_id]) @reading_list = @user.reading_lists.find params[:id] end 这似乎是一个疯狂的样板 – 是否有更好的方法来模拟它?

将炼油厂cms与Amazon S3 Web服务相连接

我在连接炼油厂cms的网站与amazon s3服务存储数据时遇到问题。 我在官方的refinerycms网站上找到了这个教程: http : //refinerycms.com/guides/amazon-s3-for-uploads 1)我遇到了有关密钥的问题: – S3_KEY – S3_SECRET – S3_BUCKET – S3_REGION我的问题是 – 我可以随意选择密钥,还是这些密钥可以在Amazon / Refinery中找到? 如果以后 – 是的,我在哪里可以找到它们? 我应该为S3_REGION输入什么(我在奥地利)? 2)插入密钥后,下一步是什么? 我是否需要重新上传亚马逊上我希望我的网站包含的所有图片? (最初的问题是 – 网站中的图像可以在本地看到,但不能在Heroku(当前部署我的应用程序)上看到,因为Heroku是只读的)。 我错过了一个链接,当我插入这些键时它将如何运作。 有人可以澄清一下吗? 感谢:D。