我有一个git分支(称为v4),它是昨天由master制作的.掌握了一些变化,我想进入v4.因此,在第4版中,我尝试从master执行rebase,并且一个文件不断搞砸:一行文本文件,其中包含版本号.此文件是app/views/common/version.txt
,在变基之前包含此文本:
v1.4-alpha-02
Run Code Online (Sandbox Code Playgroud)
这是我正在做的事情:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run …
Run Code Online (Sandbox Code Playgroud) 我有一个Rails 2.2项目,我想在其中覆盖rake db:test:prepare
任务的功能.我认为这会起作用,但它没有:
#lib/tasks/db.rake
namespace :db do
namespace :test do
desc "Overridden version of rails' standard db:test:prepare task since the schema dump used in that can't handle DB enums"
task :prepare => [:environment] do
puts "doing db:structure:dump"
Rake::Task['db:structure:dump'].invoke
puts "doing db:test:clone_structure"
Rake::Task['db:test:clone_structure'].invoke
end
end
end
Run Code Online (Sandbox Code Playgroud)
我得到了标准任务的行为.如果我将任务的名称更改为:prepare2
然后执行rake db:test:prepare2
,那么它可以正常工作.我从中得出的自然结论是,我的rake任务在内置的Rails 之前被定义,因此我的标准:prepare
任务会覆盖我的rake 任务.
任何人都可以看到我如何解决这个问题?我宁愿覆盖它而不是使用新任务.谢谢,最多
我对我的heroku推送/部署过程略有不满,否则发现和使用会很愉快.
如果我添加一个新的迁移到我的应用程序,我可以将它上传到heroku服务器的唯一方法是推送到heroku远程.这会上传并重新启动应用.不过,这并不运行迁移,所以我必须做的heroku rake db:migrate --app myapp
,然后heroku restart --app myapp
.与此同时,应用程序被破坏,因为它没有运行迁移,代码在迁移中引用了字段/表等.
必须有一种方法可以更改部署过程,以便在部署过程中rake db:migrate
自动运行,但我无法解决问题.
这是我在heroku cpanel中设置的内容吗?它是从命令行传递给heroku的选项吗?它是一个git钩子吗?谁能让我直截了当?谢谢,最大
我正试图从我的生产服务器上的控制台发送一些邮件,但他们没有出去.我无法理解为什么.我只使用sendmail标准的电子邮件设置.当我调用Mailer.deliver_方法时,我得到了回复:
#<TMail::Mail port=#<TMail::StringPort:id=0x3fe1c205dbcc> bodyport=#<TMail::StringPort:id=0x3fe1c2059e00>>
Run Code Online (Sandbox Code Playgroud)
编辑:添加了一些更多信息:
因此,例如,当新用户注册时,我在我的控制器中有这一行,向他们发送"欢迎"电子邮件:
Mailer.deliver_signup(@user, request.host_with_port, params[:user][:password])
Run Code Online (Sandbox Code Playgroud)
这很好用.我认为我应该可以从控制台做同样的事情,例如
user = User.find(1)
Mailer.deliver_signup(user, "mydomainname.com", "password")
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到了Tmail :: StringPort对象,但邮件似乎没有被发送出去(我正在尝试向自己发送电子邮件来测试这个).
我在ubuntu服务器上以防万一.谢谢 - 最大
当我尝试推入git时我有这个问题:
error: insufficient permission for adding an object to repository database ./objects
fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To ssh://<repo url>/<repo dir>
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'ssh://<repo url>/<repo dir>'
Run Code Online (Sandbox Code Playgroud)
我偶尔会有这个,我们总是不得不通过每个用户sshing到repo并在其中设置所有文件的组权限来解决它
chmod -R g+w *
Run Code Online (Sandbox Code Playgroud)
这从来都不是一个令人满意的解决方案,现在它被叮叮当当,因为其中一个人离开了,没有人知道他的回购用户的密码.所以,我正在努力解决它.
当有人试图推翻将改变另一个用户拥有的repo目录的更改时(因此设置上面的组写选项),似乎会发生错误.我已经做了一些谷歌搜索,并发现了几个正在讨论的解决方案(这两个解决方案都没有对我有用)
1)确保repo dirs与之共享的组是每个用户的主要组(我相信已经是这样的情况:每个用户只有一个组,因此必须是他们的主要组,对吗?)
2)git repo core.sharedRepository设置,详见此处:Git:无法从一台计算机上推送 我改变了这个但它没有任何区别.我是否需要重新加载配置或其他内容以实际实现更改?
这是我的repo配置看起来像atm:
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedRepository = all
[receive]
denyNonFastForwards = True
Run Code Online (Sandbox Code Playgroud)
感谢任何建议或意见!最大
我已经安装了rvm,以确保我的本地开发版本的ruby与我的服务器相同,我正在使用的特定应用程序(ruby 1.8.7).我已经完成了这个,并安装了ruby 1.8.7确定.但是,当我尝试启动rails控制台时,我收到此错误:
Readline was unable to be required, if you need completion or history install readline then reinstall the ruby.
You may follow 'rvm notes' for dependencies and/or read the docs page http://rvm.beginrescueend.com/packages/readline/ . Be sure you 'rvm remove X ; rvm install X' to re-compile your ruby with readline support after obtaining the readline libraries.
Couldn't load Wirble: no such file to load -- wirble
Run Code Online (Sandbox Code Playgroud)
我已经阅读了错误引用的页面上的注释(http://rvm.beginrescueend.com/packages/readline/),并按照说明进行操作,其中涉及基本安装readline,卸载ruby 1.8.7,然后安装ruby 1.8.7再次获得readline支持.(实际上该页面使用ruby 1.9.2作为示例,但我假设它也应该与1.8.7一起工作.也许情况并非如此).
但是,我仍然得到同样的错误.有没有其他人经历过这个并想出来了?
感谢任何建议 - 最多
编辑 - 我正在使用Ubuntu 9.10顺便说一下相关的情况.
编辑 …
我有一个表单,我用输入(带有type =按钮)替换了提交按钮,其中onclick调用现有函数:
<form accept-charset="UTF-8" action="/admin/message_campaigns" class="new_message_campaign" id="new_message_campaign" method="post">
<!-- some fields -->
<input onclick="confirmSubmit();" type="button" value="Send" />
</form>
Run Code Online (Sandbox Code Playgroud)
在confirmSubmit中,我希望能够动态获取表单对象(提交它),而不必对表单的id进行硬编码,或者将其作为调用confirmSubmit()的一部分传递.我以为我可以通过首先获得点击的dom元素来做到这一点,即:
var form = $(this).parents("form");
Run Code Online (Sandbox Code Playgroud)
其中$(this)是调用函数的对象,即onclick的输入.但这不起作用.我认为这会,如果我用它设置工作.click(function(){
的语法.我能以不同的方式获得调用函数的元素吗?
编辑 - 从下面的@claudio得到答案,为清楚起见这里是完整的功能和电话:
<form accept-charset="UTF-8" action="/admin/message_campaigns" class="new_message_campaign" id="new_message_campaign" method="post">
<!-- some fields -->
<input onclick="confirmSubmit($(this));" type="button" value="Send" />
</form>
Run Code Online (Sandbox Code Playgroud)
和功能本身.请注意,'jConfirm'是jquery-alerts插件的一种方法(http://abeautifulsite.net/blog/2008/12/jquery-alert-dialogs/),但这与此问题并不真正相关 - 关键是获取表单对象,而不是随后使用它做的事情:
function confirmSubmit(caller) {
var form = caller.parents("form");
jConfirm('Are you sure?', 'Please Confirm', function(result){
if (result) {
form.submit();
} else {
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud) 我刚刚对我的一个功能分支("feedback_tab")进行了一些更改,然后检出"master"并将它们合并到那里.我实际上是想将它们合并到我的"开发"分支中.
现在,master通过17次提交领先于'origin/master'(它的远程) - 我没有推动合并(并且显然不希望).如何将master恢复到意外合并之前的状态?我git revert
和git reset
这些东西混淆了.
我查看了我的git日志,并没有将feedback_tab合并到master中的条目.我原本以为它会成为最佳入场券?
有点困惑:/任何帮助欢迎!最大
在我们的rails应用程序中,我们发送一些系统生成的电子邮件,其中"发件人"地址设置为noreply@ourdomain.com.如果这些反弹,他们会被我们的邮件服务器发回这个地址.但是,我想做的是不要将退回的电子邮件发送回noreply@ourdomain.com,而是发送到不同的地址,例如bounced@ourdomain.com.
是否有一个标题或我可以在电子邮件中设置的内容将实现此目的,而我不必去调查我们的电子邮件服务器的变幻莫测?如果相关,我们会使用exim发送邮件.
干杯,最大
我试图在rails 3 app中第一次使用selenium.(我之前用过rails 2).我在一个rvm当然有自己的宝石.
我首先用capybara运行了一个没有硒的任务:
#./spec/requests/homepage_spec.rb
require 'spec_helper'
describe 'home page', :type => :request do
it 'should welcome the user' do
visit '/'
page.should have_content('Buddy')
end
end
Run Code Online (Sandbox Code Playgroud)
这很好.然后我在describe的选项中添加了一个":js => true"选项,它应该使用selenium运行(据我所知).并得到这个错误:
Failure/Error: @page.start_new_browser_session
WebMock::NetConnectNotAllowedError:
Real HTTP connections are disabled. Unregistered request: POST http://localhost:4444/selenium-server/driver/ with body 'cmd=getNewBrowserSession&1=%2Afirefox&2=http%3A%2F%2Flocalhost%3A3000&3=&4=' with headers {'Accept'=>'*/*', 'Content-Type'=>'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent'=>'Ruby'}
You can stub this request with the following snippet:
stub_request(:post, "http://localhost:4444/selenium-server/driver/").
with(:body => "cmd=getNewBrowserSession&1=%2Afirefox&2=http%3A%2F%2Flocalhost%3A3000&3=&4=",
:headers => {'Accept'=>'*/*', 'Content-Type'=>'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent'=>'Ruby'}).
to_return(:status => 200, :body => "", :headers => {}) …
Run Code Online (Sandbox Code Playgroud)