我正在通过git在Heroku(现在)上部署一个Rails应用程序,并且还希望有一个公共版本供人们查看.有些文件是敏感的,只能在"heroku"分支中提交和推送,而不是"公共"分支.最好的方法是什么?
(我确实知道Heroku的Config变量,这是一个很好的临时解决方案,但是当我需要切换主机时却没那么有趣.)
这两个分支不需要一直同步 - 我可以定期将"master"分支合并到"public"分支并将其分别推送到github.
我尝试了各种各样的事情:
单独的.gitignore
文件和"我们的"合并策略 - 这在一开始并不起作用,在搞乱了一段时间后我觉得它变得太复杂了,所以我可以实现一个看似简单的任务
使用自定义exclude
文件,并将以下内容添加到.git/config
...这根本不起作用:
的.git /配置
[branch "public"]
excludesfile = +info/exclude_from_public
Run Code Online (Sandbox Code Playgroud)
使私有和公共存储库共享相同代码但忽略公共存储库中的敏感文件的最佳方法是什么?
您可以假设没有提交或推送任何代码,即这是一个刚刚初始化的存储库.
(之前已经以各种形式提出了这个问题,但没有一个答案是直截了当的,或者答案看起来真的很笨拙.我只是在这里以非常简单的方式提出这个问题,希望得到一个非常简单的回答.)
我是资产管道的新手,刚刚从Rails 3.0迁移过来.我正在努力让CKEditor进入管道,但是它的所有宝石都不清楚它们是如何工作的,并且很少或没有使用说明.
我更愿意在不使用gem的情况下执行此操作,因为我似乎只需要将源文件放入vendor/assets
目录然后将其包含在内application.js
.我已经尝试过,但是,当我预编译并推向生产时,似乎没有找到某些文件(editor.css
例如),并且编辑器根本没有显示(只是空白区域).
的application.js
//= require jquery
//= require jquery_ujs
//= require ckeditor/ckeditor
//= require_self
Run Code Online (Sandbox Code Playgroud)
这是源文件vendor/assets/javascript/ckeditor/
,并指向ckeditor.js
.我只是不确定从哪里开始.此代码在开发中工作正常,但在生产中不起作用.我rake assets:precompile
在添加并提交git之前运行,然后推送到heroku.
我已经通过Mac OS X 10.7上的磁盘映像安装了MySQL 5.5.我也加入/usr/local/mysql/bin
了我的道路.bash_profile
.
which mysql
回报 /usr/local/mysql/bin/mysql
但是,无论我尝试什么,我似乎无法让服务器运行.
mysql -u root
收益:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)
sudo /usr/local/mysql/bin/mysqld_safe
启动然后立即停止守护进程:
120130 23:18:57 mysqld_safe Logging to '/usr/local/mysql/data/Bryans-Macbook-Pro.local.err'.
120130 23:18:57 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120130 23:18:59 mysqld_safe mysqld from pid file /usr/local/mysql/data/Bryans-Macbook-Pro.local.pid ended
Run Code Online (Sandbox Code Playgroud)
我觉得我已经尝试了所有可能找到的解决方案,现在我已经没有想法了.我甚至尝试过安装旧版本的MySQL(5.1)并获得相同的结果和努力.
更多的信息
运行mysqld
结果:
$ mysqld
120209 0:02:23 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.5.20-osx10.6-x86_64/data/ is case insensitive
120209 …
Run Code Online (Sandbox Code Playgroud) 当切换到/从源视图切换时,CKEditor正在剥离div CLASS属性.
这是配置:
$('.cke-editor-restrictive').ckeditor({
extraAllowedContent: [
"*[class,id]",
"a[*]",
"img[*]",
"strong", "em", "small",
"u", "s", "i", "b",
"p", "blockquote[class,id]",
"div[class,id,data-href]",
"ul", "ol", "li",
"br", "hr",
"h1", "h2", "h3", "h4", "h5", "h6",
"script[src,charset,async]",
"iframe[*]", "embed[*]", "object[*]",
"cite", "mark", "time",
"dd", "dl", "dt",
"table", "th", "tr", "td", "tbody", "thead", "tfoot"
].join("; ")
})
Run Code Online (Sandbox Code Playgroud)
和全局CKEditor配置:
CKEDITOR.editorConfig = function(config) {
config.extraPlugins = 'mediaembed,codemirror,autosave';
config.codemirror = { ... };
config.toolbar = [['Bold', 'Italic', 'Underline', "RemoveFormat"], ['NumberedList', 'BulletedList', 'Blockquote'], ['Link', 'Unlink', 'Image', 'MediaEmbed'], ['Find', 'Paste'], ['Source', 'Maximize']]; …
Run Code Online (Sandbox Code Playgroud) 我已通过输入结算信息在Heroku中验证了我的帐户.当我访问http://heroku.com/confirm时,它会告诉我"您的帐户已经过验证".
但是,当我运行一个命令来添加一个附加组件时heroku addons:add custom_domains
,我得到了这个错误:
-----> Adding custom_domains to uplate... failed
! Please verify your account to install this add-on
! For more information, see http://devcenter.heroku.com/categories/billing
! Confirm now at https://heroku.com/confirm
Run Code Online (Sandbox Code Playgroud)
此外,当我点击网站上的任何"验证"链接时(例如在附加页面上),我只是被重定向到我所在的同一页面,但它一直告诉我要验证.
我错过了什么吗?这是我在Heroku的第一个应用程序,所以我仍然有点困惑.
我有一个类方法,它只是遍历一些记录并在每条记录上执行一个实例方法.我正在尝试为类方法编写一个简单的测试,以确保它将实例方法发送到每个记录.
it "fires any pending alarms" do
pending = create :alarm, :pending
other_pending = create :alarm, :pending
# sanity check
Alarm.pending.sort.should eq [pending, other_pending].sort
pending.should_receive(:fire)
other_pending.should_receive(:fire)
Alarm.fire_pending
end
Run Code Online (Sandbox Code Playgroud)
alarm.rb
class Alarm < ActiveRecord::Base
scope :pending, where(pending: true)
def self.fire_pending
self.pending.each do |alarm|
alarm.fire
end
end
end
Run Code Online (Sandbox Code Playgroud)
但我对这两个should_receive
期望都收到了错误:
Failure/Error: pending.should_receive(:fire)
(#<Alarm:0x007fcc96334310>).fire(any args)
expected: 1 time
received: 0 times
Run Code Online (Sandbox Code Playgroud)
我成功地使用了这个期望.我担心我会遗漏一些明显的东西.
编辑
我现在已经解决了这个问题:
it "fires any pending alarms" do
pending = create :alarm, :pending
other_pending = create :alarm, :pending
pending_alarms = …
Run Code Online (Sandbox Code Playgroud)