新用户注册我的小应用程序必须得到管理员(我)的批准才能访问该网站.我已成功使用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文件.有没有办法可以在全球范围内关闭它?有人对发生的事情有任何想法吗?
我正在使用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) 完成了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个问题:
有没有办法将jQuery插件导入我的Rails应用程序,将它们放入它们所属的public/javascripts /目录中?
如果1的答案是"否",有没有办法让javascript_include_tag搜索vendor/plugins /中的脚本?这似乎是不好的做法,因为jQuery脚本隐藏在public/javascript /目录之外,人们通常会在那里查找它们.
如果1和2都是"不",那么有没有更优雅的方式从vendor/plugins /移动文件而不是$ mv或复制和粘贴?
注意:通过网络搜索,我在http://getsprockets.org/上看到了37signals的sprokets gem,这似乎在某些方面可能有用,但超出了我目前的需求和理解.
感激任何想法!
jquery plugins jquery-plugins ruby-on-rails-plugins ruby-on-rails-3
我刚刚完成了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.coffee
在app/assets/javascripts/
目录中创建一个很好的文件.如果我把它放在那个.coffee
文件中,Javascript就不起作用了.有人有什么想法?
$ 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
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应用程序中安全部署.提前感谢任何想法.你将让世界变得更安全!
大约 6 个月前,Moonshado是Heroku特色的附加组件,可轻松将短信添加到应用程序中。我的一个使用 Moonshado 的 Heroku 托管应用程序仍在运行(并向我收费),并且Moonshado 说明仍然出现在Heroku 的开发中心中。也就是说,Moonshado 现在已不再出现在Heroku 的附加页面中。事实上,Heroku 当前的附加组件中似乎不提供短信服务。
有谁知道 Heroku 和 Moonshado 发生了什么以及当前向新 Heroku 应用程序添加短信的最佳方式是什么?
编辑:2014-06-25 - 正如我在下面的答案中详细说明的那样,我已经使用Twilio在我的 Rails 应用程序上使用了短信。
我在工作中设置了一个调度网站,该网站使用Twilio发送短信,每个人的第二天分配信息,以及指向发布笔记和每个人的第二天作业的网站的链接.有时同事抱怨他们没有收到消息.最近问题变得更加严重,但仅限于AT&T和Sprint的人.拥有Verizon和TMobile的人可以毫无问题地获得他们的消息.
还有一些事实:
任何人都有任何想法可能会发生什么?
花了昨天和今天早上试图弄清楚发生了什么.我有一个简单的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)
更多细节:
# 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)
与注释代码相关的唯一电子邮件是:
# Don't care if the mailer …
Run Code Online (Sandbox Code Playgroud) 使用Rails Composer在Cloud9上使用postgreSQL创建rails应用程序并在Heroku 上部署的过程充满了警告和错误,这可能会让新开发人员感到困惑.是否有任何说明可以帮助我完成整个过程并部署我的入门应用程序?
我是编程和rails的新手,我想创建一个我正在使用的rails应用程序的副本,以便无害地尝试一些东西.是否有一种简单的方法可以实现这一目标?
我试图用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)
部分规范文件: …
我有建筑物,公寓,住宅和用户由于某种原因不能很好地在一起玩.不知道我错过了什么.
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!" 对任何线索都会非常感激.
heroku ×5
postgresql ×3
rspec ×3
jquery ×2
rspec-rails ×2
sendgrid ×2
sms ×2
twilio ×2
actionmailer ×1
capybara ×1
carrierwave ×1
cloud9-ide ×1
email ×1
github ×1
javascript ×1
plugins ×1