Tag: ruby on rails

Rails / Paperclip / S3神秘错误:未定义的方法“global_endpoint?”

所以我上周将一个Rails应用程序从3.0升级到4.0,自从我得到奇怪的错误,似乎指向我没有改变的随机位置,我无法重现它们。 一个这样的错误是这样的: NoMethodError: undefined method `global_endpoint?’ for AWS::S3:Class [GEM_ROOT]/gems/aws-sdk-1.46.0/lib/aws/core/configuration.rb:441 /gems/aws-sdk-1.46.0/lib/aws/core/configuration.rb:441 in “block in add_service” /gems/aws-sdk-1.46.0/lib/aws/core/configuration.rb:361 in “call” /gems/aws-sdk-1.46.0/lib/aws/core/configuration.rb:361 in “block in add_option” /gems/aws-sdk-1.46.0/lib/aws/core/configuration.rb:381 in “block (2 levels) in add_option_with_needs” /gems/aws-sdk-1.46.0/lib/aws/core/configuration.rb:381 in “each” /gems/aws-sdk-1.46.0/lib/aws/core/configuration.rb:381 in “inject” /gems/aws-sdk-1.46.0/lib/aws/core/configuration.rb:381 in “block in add_option_with_needs” /gems/aws-sdk-1.46.0/lib/aws/core/service_interface.rb:73 in “initialize” /gems/paperclip-4.1.1/lib/paperclip/storage/s3.rb:239 in “new” /gems/paperclip-4.1.1/lib/paperclip/storage/s3.rb:239 in “obtain_s3_instance_for” /gems/paperclip-4.1.1/lib/paperclip/storage/s3.rb:233 in “s3_interface” /gems/paperclip-4.1.1/lib/paperclip/storage/s3.rb:243 in “s3_bucket” […]

Rails:after_create停止保存时出现exception

简单的问题。 我有一个ActiveRecord模型,我希望在保存记录后执行后期处理。 所以在模型中我有一个queue_for_processing方法,可以将作业粘贴到我的Resque队列中。 为了在我的记录成功持久化后执行此操作,我在我的模型中编写了以下内容: after_create :queue_for_processing 很简单。 我原以为一切都按预期工作除了昨晚我的redis服务器发生故障,事情发生了变化。 我的期望是记录仍然会被保存,我可以稍后手动处理该作业。 但是queue_for_processing方法抛出exception(预期行为)并停止保存记录。 我误解了after_create是如何工作的吗? 或者我的理解是否正确并且发生了什么时髦? 谢谢。

使用MessageClicks表跟踪已读/未读的用户消息?

我正在尝试为我的应用程序的用户实现一个简单的收件箱系统 ,以便可以相互发送基本消息 – 就像在许多论坛系统中一样。 如果User has_many :messages ,我如何跟踪并通知用户自上次阅读以来未读的消息? 我认为点击Messages屏幕的链接需要记录在一个单独的表( MessagesClicks )中。 这是最好的方法吗? 那么我检查MessagesClicks表以查看自上次链接被点击以来是否有任何新消息 – 基于last_clicked或updated_at字段 。

使用方法:设计after_sign_up_redirect?

我试着按照这里的说明( GitHub Devise Wiki ),但它不适合我。 我想在用户注册后让Devise重定向到/ welcome。 我创建了一个注册控制器,但它永远不会进入视图。 我在这做错了什么? Ruby 1.9.2 Rails 3.1.0.rc4 Devise 1.4.2 谢谢 更新: 由于某种原因,未触发after_sign_up_path_for但触发了after_sign_in_path_for 。 我仍然想让after_sign_up_path_for工作 _app /控制器/ registrations_controller.rb_ class RegistrationsController < Devise::RegistrationsController protected def after_sign_up_path_for(resource) welcome_path end end 这是我的config / routs.rb MyApp::Application.routes.draw do devise_for :users root :to => ‘pages#home’ match “/users”, :to => “users#all” match “/users/:id”, :to => “users#show”, :as […]

如何在Ruby on Rails中分析请求?

如何配置控制器操作? 我的一个观点是花了相当长的时间来渲染,我想把它分解。 我看到了script/performance/profiler ,但似乎只能访问全局范围。

使用传递变量从rails上的ruby执行shell脚本

我试图将韵律xmpp服务器与我的rails应用程序集成。 我需要在注册时在数据库中创建一些用户,这样我才能在韵律服务器中使用它们。 在rails中运行shell命令并输出任何信息日志的最佳方法是什么? prosodyctl adduser User.username

如何使用httparty for rails 3解析og元标记

我试图使用此代码使用HTTParty gem解析og元标记: link = http://www.usatoday.com/story/gameon/2013/01/08/nfl-jets-tony-sparano-fired/1817037/ # link = http://news.yahoo.com/chicago-lottery-winners-death-ruled-homicide-181627271.html resp = HTTParty.get(link) ret_body = resp.body # title og_title = ret_body.match(/\/) og_title = og_title[1].to_s 问题是它在一些网站上工作(雅虎!)而不是其他网站(今天的美国)

使用Ruby Curb传递GET参数

我正在尝试使用Curb(curb.rubyforge.org)来调用需要在get请求中提供的参数的RESTful API。 我想获取像http://foo.com/bar.xml?bla=blablabla这样的url。 我希望能够做类似的事情 Curl::Easy.perform(“http://foo.com/bar.xml”, :bla => ‘blablabla’) {|curl| curl.set_some_headers_if_necessary } 但到目前为止,我能看到的唯一方法是在URL中手动包含?bla=blablabla并自己进行编码。 当然有一种正确的方法可以做到这一点,但我无法弄清楚阅读文档。

如何使用ActiveRecord访问Postgres列的默认值?

我正在尝试访问Postgres 9.2数据库中列的默认值。 通过使用原始SQL,我可以validation列默认为“users_next_id()”: > db = ActiveRecord::Base.connection > db.execute(“SELECT table_name,column_name,column_default FROM information_schema.columns WHERE table_name = ‘users’ and column_name =’id'”).first => {“table_name”=>”users”, “column_name”=>”id”, “column_default”=>”users_next_id()”} 但是当我使用AR的’columns’方法时,默认值似乎是nil: [26] pry(main)> db.columns(‘users’)[0]=> # 这不会导致任何问题(除了让我困惑),但这是预期的行为吗? 我是否对“列”方法做出了错误的假设?

哪个create / create_record在ActiveRecord中消失了?

我有一个ActiveRecord的审计猴子补丁,适用于从2.x到4.0.2的所有版本的Rails,但不适用于ActiveRecord 4.1。 4.0的代码看起来像这样 module HLLAuditStamps def self.included(base) # create/update became create_record/update_record in Rails-4.0 base.alias_method_chain :create_record, :audit base.alias_method_chain :update_record, :audit private def create_record_with_audit set_audit_attributes . . . 这适用于4.0.2但在4.1.2中抛出此exception: create_record’ for class ActiveRecord :: Base的未定义方法create_record’ for class ‘(NameError) 如果我在rails-4.1.2项目中进入rails控制台并列出ActivRecord :: Base中的方法,我会看到: . . . – :count_by_sql – :create – :create! – :create_with – :current_scope . . . […]