小编Ben*_*enU的帖子

ActionMailer在测试模式下发送真实的电子邮件! - 如何关闭?

新用户注册我的小应用程序必须得到管理员(我)的批准才能访问该网站.我已成功使用after_create :send_admin_email我的用户模型在开发中生成此类电子邮件,该模型非常有效.我的问题是我在测试期间(使用FactoryGirl)生成了多个用户,并且每个创建的测试用户都会发送一封真实的电子邮件.运行我的测试就像在1月份浇糖蜜,我必须删除发送到我收件箱的数百封电子邮件.我怎么把它关掉?

Rails指南中的Action Mailer Basics告诉我"默认情况下,Action Mailer不会在测试环境中发送电子邮件.它们只是添加到ActionMailer :: Base.deliveries数组中."

而且,config/environments/test.rb我有:

config.action_mailer.delivery_method = :test
Run Code Online (Sandbox Code Playgroud)

这是除了config/environment.rb:

# Configuration for using SendGrid on Heroku
ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.sendgrid.net',
  :port           => '587',
  :authentication => :plain,
  :user_name      => 'app[my app number]@heroku.com',
  :password       => '[something super secret]',
  :domain         => '[let's get this party started!.com]',
  :enable_starttls_auto => true
}
ActionMailer::Base.delivery_method = :smtp
Run Code Online (Sandbox Code Playgroud)

我确信我错过了一些简单而基本的东西.我已经搜索了相关问题和帖子处理如何测试ActionMailer实际发送电子邮件.

对任何想法或帮助提前谦卑的感激.

附录:回答类似问题的答案是否有可能在开发黄瓜测试时关闭ActionMailer电子邮件?我能够阻止发送疯狂的电子邮件.不过,我不得不添加ActionMailer::Base.delivery_method = :test几个rspec文件.有没有办法可以在全球范围内关闭它?有人对发生的事情有任何想法吗?

actionmailer rspec-rails sendgrid ruby-on-rails-3

21
推荐指数
2
解决办法
9335
查看次数

rspec测试载波 - 新手

我正在使用carrierwave制作rails 3.1应用程序将文件上传到aws s3.我已按照carrierwave github存储库上的说明操作,现在可以将文件上传到我的aws存储桶.这是让我陷入困境的测试.在过去的两天里,我一直在谷歌搜索和修改,使用我发现的所有其他问答,但我终于哭了'妈妈'.这是我得到的:

/app/uploaders/image_file_uploader.rb

storage :fog

def store_dir
  "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
Run Code Online (Sandbox Code Playgroud)

/config/initializers/carrierwave.rb

if Rails.env.test? or Rails.env.cucumber?
  CarrierWave.configure do |config|
    config.storage = :file
    config.enable_processing = false
  end
end
Run Code Online (Sandbox Code Playgroud)

/spec/uploaders/image_file_uploader_spec.rb

require 'spec_helper'
require 'support/fog_helper'
require 'carrierwave/test/matchers'

describe ImageFileUploader do
  include CarrierWave::Test::Matchers

  before do
    ImageFileUploader.enable_processing = true
    @user = Factory(:user, :email => "photo_taker@example.edu")
    @uploader = ImageFileUploader.new(@user, Factory(:image))
    @uploader.store!(File.open("#{Rails.root}/tmp/uploads/#{Rails.env}/images/"))
  end

  after do
    @uploader.remove!
    ImageFileUploader.enable_processing = false
  end

  context 'the tiny version' do
    it "should scale down a landscape image to be exactly 50 by …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails carrierwave ruby-on-rails-3.1

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

在Rails 3中使用jQuery插件

完成了Hartl伟大的Rails教程后,我现在正在通过非常好的jQuery -由Castledine和Sharkie 为Ninja新手工作.虽然我能够在我的rails项目中包含jquery.js和jquery-ui.js,但在添加其他jQuery插件时我会陷入困境.

我已经发现当插件托管在github上时,我可以使用命令行将它们导入到我的项目中:

[my rails app]$ rails install [github URL]
Run Code Online (Sandbox Code Playgroud)

该插件成功导入/ vendor/plugin /目录,其中javascript_include_tag无法找到它们.这种情况提示3个问题:

  1. 有没有办法将jQuery插件导入我的Rails应用程序,将它们放入它们所属的public/javascripts /目录中?

  2. 如果1的答案是"否",有没有办法让javascript_include_tag搜索vendor/plugins /中的脚本?这似乎是不好的做法,因为jQuery脚本隐藏在public/javascript /目录之外,人们通常会在那里查找它们.

  3. 如果1和2都是"不",那么有没有更优雅的方式从vendor/plugins /移动文件而不是$ mv或复制和粘贴?

注意:通过网络搜索,我在http://getsprockets.org/上看到了37signals的sprokets gem,这似乎在某些方面可能有用,但超出了我目前的需求和理解.

感激任何想法!

jquery plugins jquery-plugins ruby-on-rails-plugins ruby-on-rails-3

9
推荐指数
2
解决办法
4894
查看次数

将JQuery或Javascript(而不是coffee.script)代码添加到Rails 3.2应用程序中?

我刚刚完成了Code School的 JQuery简介,jQuery Air:First Flight.这是学习jQuery基础知识的好方法,当我完成工作时,我很高兴能在我的新的little rails 3.2应用程序中添加一些jQuery.但是,如何实现这一目标并不明显.

默认情况下,rails 3.2附带jquery-rails和coffee-rails宝石.新的3.2应用程序都设置为以咖啡脚本的形式接受javascript和jquery.虽然我很快就会学习咖啡脚本,但现在我所拥有的只是jquery.

更具体地说,我应该添加如下内容:

<script type="text/javasript" src= "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

进入我的app/views/layouts/application.html.erb文件的头部或是所有照顾jquery-rails gem和

<%= javascript_include_tag "application" %>
Run Code Online (Sandbox Code Playgroud)

已经在那了?

在我的应用程序中,我把jQuery代码放在哪里?对于我生成的每个新控制器,rails 3.2 [new_controller].js.coffeeapp/assets/javascripts/目录中创建一个很好的文件.如果我把它放在那个.coffee文件中,Javascript就不起作用了.有人有什么想法?

javascript jquery ruby-on-rails-3.2

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

在rails 3.2中默认使用postgresql并避免testunit的方法?

$ rails new [app name] -d postgresql --skip-test-unit每次我开始新的rails应用程序时,我都厌倦了打字.我正在使用rails 3.2.

有没有办法使用postresql和跳过测试单元我的新rails应用程序的默认值?

postgresql rspec rspec-rails rails-postgresql ruby-on-rails-3.2

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

在"信任"模式下使用postgresql将rails应用程序部署到github和heroku的安全隐患

Heroku "强烈建议在开发过程中使用PostgreSQL",这就是我过去几个月一直在做的事情.我使用的铁轨3.2.8和丹尼尔·基欧的优秀之间的Rails Heroku的教程和Ryan贝茨对railscast 迁移到PostgreSQL,我已经能够获得运行和部署应用程序.我的问题是postgreSQL正在做很多事情(包括角色,用户,超级用户等),我没有深入了解.我特别关注的是,我一直在本地和部署中使用"信任"身份验证.这是否意味着随机的人可以某种方式访问​​我的应用程序的数据库?

现在,然后每一个在轨/ github上interwebs我遇到引用保持应用程序的config/database.yml文件关闭github上(可能是唯一的公共或共享库),因为该文件包含密码信息.我总是看着那个文件,抓住我的脑袋.我没有在那里提供密码信息.以下是该文件对于开发,测试和生产的看法(注意,由于它们都是相同的代码,因此我只展示了三个中的一个).

[development, test or production]:
  adapter: postgresql
  encoding: unicode
  database: [myapp]_[development, test or production]
  pool: 5
  username: [myapp]
  password:
Run Code Online (Sandbox Code Playgroud)

我害怕知道我应该做些什么来使postgreSQL正确设置并在我的rails应用程序中安全部署.提前感谢任何想法.你将让世界变得更安全!

postgresql ruby-on-rails github heroku ruby-on-rails-3.2

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

heroku 短信插件?——月影失踪

大约 6 个月前,MoonshadoHeroku特色的附加组件,可轻松将短信添加到应用程序中。我的一个使用 Moonshado 的 Heroku 托管应用程序仍在运行(并向我收费),并且Moonshado 说明仍然出现在Heroku 的开发中心中。也就是说,Moonshado 现在已不再出现在Heroku 的附加页面中。事实上,Heroku 当前的附加组件中似乎不提供短信服务。

有谁知道 Heroku 和 Moonshado 发生了什么以及当前向新 Heroku 应用程序添加短信的最佳方式是什么?

编辑:2014-06-25 - 正如我在下面的答案中详细说明的那样,我已经使用Twilio在我的 Rails 应用程序上使用了短信。

sms ruby-on-rails heroku twilio

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

Twilio没有向某些用户发送短信

我在工作中设置了一个调度网站,该网站使用Twilio发送短信,每个人的第二天分配信息,以及指向发布笔记和每个人的第二天作业的网站的链接.有时同事抱怨他们没有收到消息.最近问题变得更加严重,但仅限于AT&T和Sprint的人.拥有Verizon和TMobile的人可以毫无问题地获得他们的消息.

还有一些事实:

  • 我的所有代码都在测试中运行良好,并且与Twilio的说明一致.
  • Twilio的日志列出了已发送的消息.
  • 没有传递短信的人往往是在字母表的末尾

任何人都有任何想法可能会发生什么?

sms twilio

5
推荐指数
2
解决办法
2061
查看次数

部署到heroku的Rails 5应用程序不在生产中发送sendgrid电子邮件

花了昨天和今天早上试图弄清楚发生了什么.我有一个简单的Rails 5应用程序使用sendgrid从开发rails控制台成功发送电子邮件,但在heroku部署生产rails控制台尝试相同的事情不会发送电子邮件,但会生成以下错误:

Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 25
from (irb):1
Run Code Online (Sandbox Code Playgroud)

更多细节:

  • 红宝石2.3.3
  • 铁轨5.1.3
  • 宝石'sendgrid-ruby','〜> 5.0'

到config/environment.rb

# Load the Rails application.
require_relative 'application'                                

# Initialize the Rails application.                           
Rails.application.initialize!                                 

Invoicer::Application.configure do 
  # Setup the mailer config                                   
  config.action_mailer.delivery_method = :smtp                
  config.action_mailer.perform_deliveries = true              
  config.action_mailer.smtp_settings = {
    :user_name => ENV['SENDGRID_USERNAME'],                   
    :password => ENV['SENDGRID_PASSWORD'],                    
    :domain => '[myapp].herokuapp.com',
    :address => 'smtp.sendgrid.net',                          
    :port => 587,
    :authentication => :plain,                                
    :enable_starttls_auto => true    
  }
end
Run Code Online (Sandbox Code Playgroud)

配置/环境/ development.rb

与注释代码相关的唯一电子邮件是:

# Don't care if the mailer …
Run Code Online (Sandbox Code Playgroud)

email ruby-on-rails heroku sendgrid

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

如何在Cloud9上使用Rails Composer和postgreSQL并在Heroku上部署

使用Rails ComposerCloud9上使用postgreSQL创建rails应用程序并在Heroku 上部署的过程充满了警告和错误,这可能会让新开发人员感到困惑.是否有任何说明可以帮助我完成整个过程并部署我的入门应用程序?

postgresql heroku cloud9-ide ruby-on-rails-4 rails-composer

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

如何使用git复制rails app并部署到heroku

我是编程和rails的新手,我想创建一个我正在使用的rails应用程序的副本,以便无害地尝试一些东西.是否有一种简单的方法可以实现这一目标?

ruby-on-rails heroku ruby-on-rails-3

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

Rails 3.2使用launchy调试rspec,capybara,save_and_open_page无法正常工作

我试图用launchy告诉为什么我的规格不工作,但save_and_open_page失败时,我跑我的规格打开以下错误消息的浏览器,只有结果:

抱歉,您需要安装launchy(gem install launchy)并确保它可用于打开页面save_and_open_page.

我跑了bundle install并且bundle show launchy收益率:

/Users/benjaminunger/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/launchy-2.2.0
Run Code Online (Sandbox Code Playgroud)

我的Gemfile:

group :development, :test do 
  gem "rspec-rails", "~> 2.13.0"
  gem 'guard-rspec', '0.5.5'
  gem 'growl', '1.0.3'
  gem 'ruby_gntp', "0.3.4"
  gem 'faker', '1.0.1'
end

group :development do
  gem 'annotate', '~> 2.4.1.beta'
end

group :test do
  gem 'capybara', '1.1.2'
  gem 'rb-fsevent', '0.4.3.1', :require => false
  gem 'guard-spork', '0.3.2'
  gem 'spork', '0.9.2'
  gem 'factory_girl_rails', '1.4.0'
  gem "database_cleaner", "~> 0.9.1"
  gem "launchy", "~> 2.2.0"
end
Run Code Online (Sandbox Code Playgroud)

部分规范文件: …

rspec ruby-on-rails capybara ruby-on-rails-3

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

Rails 3.2 ActiveRecord :: InverseOfAssociationNotFoundError中的关联失败

我有建筑物,公寓,住宅和用户由于某种原因不能很好地在一起玩.不知道我错过了什么.

class Building < ActiveRecord::Base
  attr_accessible ...

  has_many :apartments, inverse_of: :building
  ...
end


class Apartments < ActiveRecord::Base
  ...
  belongs_to :building, inverse_of: :apartment
  has_many :residences, inverse_of: :apartment
  ...
end


class Residence < ActiveRecord::Base
  ...
  belongs_to :apartment, inverse_of: :residence
  belongs_to :user, inverse_of: :residence
  ...
end


class User < ActiveRecord::Base
...
  has_many :residences, inverse_of: :user
...
end
Run Code Online (Sandbox Code Playgroud)

在rails控制台中,我遇到了反向关联问题:

一类

=>公寓(id:整数,building_id:整数,...,created_at:datetime,updated_at:datetime)

建筑

ActiveRecord :: InverseOfAssociationNotFoundError:找不到/Users/[me]/.rvm/gems/ruby-1.9.3-p194@r3t2/gems/activerecord-3.2.8/中构建(:Building in Building)的反向关联lib/active_record/reflection.rb:246:在`check_validity_of_inverse!'

h.class

=> Residence(id:integer,apartment_id:integer,user_id:integer ...,created_at:datetime,updated_at:datetime)

h.user

ActiveRecord :: InverseOfAssociationNotFoundError:无法从/Users/[me]/.rvm/gems/ruby-1.9.3-p194@r3t2/gems/activerecord-3.2.8/找到用户(:用户居住地)的反向关联lib/active_record/reflection.rb:246:在`check_validity_of_inverse!'

我可以继续 这些类之间的关系似乎被挂起了.我在过去的几个小时里尝试了各种迭代,但最后我称之为"ma ma!" 对任何线索都会非常感激.

ruby-on-rails ruby-on-rails-3.2

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