我有一个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)