小编abh*_*has的帖子

如何让ExceptionNotifier在Rails 3中与delayed_job一起使用?

我希望ExceptionNotifier在延迟作业中发生异常时发送电子邮件,就像其他异常一样.我怎样才能做到这一点?

delayed-job ruby-on-rails-3 exception-notification

25
推荐指数
2
解决办法
6051
查看次数

Ruby on Rails ActiveRecord,其中属性不为空

我试图找到指定属性不为空或空白的记录.由于它是一个字符串,因此在数据库中不是nil.

Post.where(:sourceurl != '')
Run Code Online (Sandbox Code Playgroud)

上面看起来应该可以工作,但我仍然得到返回source_url属性为空的记录.这样做的正确方法是什么?

activerecord ruby-on-rails ruby-on-rails-3

18
推荐指数
3
解决办法
2万
查看次数

为什么我的mongoDB托管uong设置为mongoid.yml无法正常工作?

我正在使用mongoid.yml中的以下设置(不起作用),并且我已正确地将MONGOLAB_URI环境变量添加到我的heroku环境中:

production:
  sessions:
    default:
      another:
        uri: <%= ENV['MONGOLAB_URI'] %>
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下不起作用:

production:
  uri: <%= ENV['MONGOLAB_URI'] %>
Run Code Online (Sandbox Code Playgroud)

这也行不通:

production:
  sessions:
    default:
      uri: <%= ENV['MONGOLAB_URI'] %>
Run Code Online (Sandbox Code Playgroud)

我在heroku推送时遇到以下错误:

Running: rake assets:precompile
       There is a configuration error with the current mongoid.yml.
       Problem:
       No database provided for session configuration: :default.
       Summary:
       Each session configuration must provide a database so Mongoid knows where the default database to persist to. What was provided was: {"another"=>{"uri"=>nil}}.
       Resolution:
       If configuring via a …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku mongodb mongoid

12
推荐指数
2
解决办法
7162
查看次数

防止在Rails AJAX表单中提交双重提交

是)我有的:

我有一个表格,我通过AJAX提交.

<%= form_for([@map, @annotation], :remote => true ) do |f| %>
   ...
   <%= f.submit "Save annotation", :class => "btn btn-primary", :id => "annotation-submit-button" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我想要的是:

我想防止双重提交.由于表单仅在请求成功完成后消失,因此只要数据库尚未完成数据写入,用户就可以单击"提交"按钮.显然,我不希望这样.

我尝试过的:

我尝试将此添加到提交按钮本身 - 但它不起作用.该按钮被禁用,但没有数据被发送.

:onclick => "this.disabled = true"
Run Code Online (Sandbox Code Playgroud)

我还尝试在提交按钮中添加一个点击处理程序.这与以前具有相同的效果.实际上没有数据发送到控制器,但是按钮被禁用.

$("#annotation-submit-button").click(function(event) {
  $(this).attr("disabled", "disabled");
  return false;
});
Run Code Online (Sandbox Code Playgroud)

也尝试了同样没有返回false.禁用该按钮后没有任何反应.

$("#annotation-submit-button").click(function(event) {
  $(this).prop("disabled", "disabled");
});
Run Code Online (Sandbox Code Playgroud)

我开始认为这是Rails特有的?

ajax jquery ruby-on-rails submit ruby-on-rails-3

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

CarrierWave Backgrounder未将版本映像上载到AWS S3

我使用带有RMagic的carrierwave 0.10.0 gem来在AWS S3上上传图像.一切都运行正常,除了花费太多时间在AWS S3上传.所以想到使用carrierwave背景来在背景中上传图像.我设置了载波波浪背景(0.4.2),但在这一个我的原始文件总是上传到S3,但该图像的版本永远不会上传到S3.

这是我的carrierwave_backgrounder.rb

CarrierWave::Backgrounder.configure do |c|
   c.backend :sidekiq, queue: :carrierwave
end
Run Code Online (Sandbox Code Playgroud)

我在sidekiq.rb中定义了我的队列

Sidekiq.configure_server do |config|
 config.redis = { :url => "redis://#{ENV['REDIS_ENDPOINT']}:6379", :namespace=> "#{ENV['REDIS_NAMESPACE']}" }
 config.options = 
 queues: %w{
    critical
    carrierwave
  }
 })
end
Run Code Online (Sandbox Code Playgroud)

这是我的photo_uploader.rb

class PhotoUploader < CarrierWave::Uploader::Base
  include ::CarrierWave::Backgrounder::Delay
  include CarrierWave::RMagick
  storage :fog

  def store_dir
    "uploads/images/"
  end

  def filename
    "#{secure_token}.#{file.extension}" if original_filename.present?
  end

  def orient_image
    manipulate! do |img|
      img.auto_orient
      img
    end
  end

  # Create different versions of your uploaded files:
  version :thumb_small do
    process :resize_to_fill => …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails image-uploading ruby-on-rails-3 carrierwave

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

尝试在发出POST请求的所选页面上实现HTTPS

我试图在我的rails 3.1项目中发出POST请求的选定页面上实现HTTPS.但是没有尝试所有种类的宝石后的任何成功ssl_requirement,rack-ssl-enforcer.所有的宝石都在帮助将GET请求作为HTTPS进行,但POST请求没有任何成功.

任何人都可以帮我解决这个问题吗?

ssl https http-post ruby-on-rails-3

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

Mongoid 中 embeds_one 的目的是什么?

我理解使用的概念embeds_many,但是embeds_one特别是当嵌入文档中只有一个字段(如 mongoid.org 上的 1-N 嵌入文档示例所示)时,其目的是什么?在父文档中创建一个字段不是更好吗?

mongoid.org 上的示例:

class Band
  include Mongoid::Document
  embeds_one :label
end


class Label
  include Mongoid::Document
  field :name, type: String
  embedded_in :band
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails mongoid ruby-on-rails-3

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

从config/initializers/devise.rb获取facebook app id

我在config/initializers/devise.rb中设置了我的facebook app id,现在我正试图在我的控制器中检索它.

我怎么称呼它?

Devise.setup do |config|
    config.omniauth :facebook, 'XXXXXX', 'XXXXX', :scope => 'email,offline_access,user_likes,user_interests,publish_actions,publish_stream'
end 
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise ruby-on-rails-3

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

日期和范围不一致

我有以下范围:

scope :this_month, :conditions => ["created_at >= ?", Date.today.beginning_of_month]
Run Code Online (Sandbox Code Playgroud)

这使得SQL输出a.response_sets.this_month.to_sql:

SELECT "response_sets".* FROM "response_sets" WHERE created_at >= '2012-05-01'
Run Code Online (Sandbox Code Playgroud)

但由于今天实际上是6月1日,那个日期似乎是错误的.所以,我试图绕过范围并直接做一个条件,如下:

a.response_sets.where(["created_at >= ?", Date.today.beginning_of_month]).to_sql
Run Code Online (Sandbox Code Playgroud)

然后,输出:

SELECT "response_sets".* FROM "response_sets" WHERE created_at >= '2012-06-01'
Run Code Online (Sandbox Code Playgroud)

哪个是对的.那么为什么Date.today.beginning_of_month在范围内进行直接进行where呢?

activerecord datetime scope ruby-on-rails ruby-on-rails-3

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