小编Max*_*ams的帖子

Git rebase:冲突不断阻碍进展

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

git rebase

118
推荐指数
4
解决办法
9万
查看次数

覆盖rails的默认rake任务

我有一个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 任务.

任何人都可以看到我如何解决这个问题?我宁愿覆盖它而不是使用新任务.谢谢,最多

rake ruby-on-rails

71
推荐指数
3
解决办法
2万
查看次数

Rails 3和Heroku:在推送时自动"rake db:migrate"?

我对我的heroku推送/部署过程略有不满,否则发现和使用会很愉快.

如果我添加一个新的迁移到我的应用程序,我可以将它上传到heroku服务器的唯一方法是推送到heroku远程.这会上传并重新启动应用.不过,这并不运行迁移,所以我必须做的heroku rake db:migrate --app myapp,然后heroku restart --app myapp.与此同时,应用程序被破坏,因为它没有运行迁移,代码在迁移中引用了字段/表等.

必须有一种方法可以更改部署过程,以便在部署过程中rake db:migrate自动运行,但我无法解决问题.

这是我在heroku cpanel中设置的内容吗?它是从命令行传递给heroku的选项吗?它是一个git钩子吗?谁能让我直截了当?谢谢,最大

git ruby-on-rails heroku

61
推荐指数
6
解决办法
2万
查看次数

从rails console发送电子邮件

我正试图从我的生产服务器上的控制台发送一些邮件,但他们没有出去.我无法理解为什么.我只使用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服务器上以防万一.谢谢 - 最大

sendmail ruby-on-rails

56
推荐指数
4
解决办法
4万
查看次数

git:无法推送(解包器错误)与权限问题相关

当我尝试推入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)

感谢任何建议或意见!最大

linux git

54
推荐指数
5
解决办法
9万
查看次数

rails控制台,RVM和readline的问题

我已经安装了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顺便说一下相关的情况.

编辑 …

ruby readline rvm

52
推荐指数
2
解决办法
2万
查看次数

获取元素在jquery中触发onclick事件?

我有一个表单,我用输入(带有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)

javascript jquery

43
推荐指数
4
解决办法
12万
查看次数

撤消git merge(尚未推送)

我刚刚对我的一个功能分支("feedback_tab")进行了一些更改,然后检出"master"并将它们合并到那里.我实际上是想将它们合并到我的"开发"分支中.

现在,master通过17次提交领先于'origin/master'(它的远程) - 我没有推动合并(并且显然不希望).如何将master恢复到意外合并之前的状态?我git revertgit reset这些东西混淆了.

我查看了我的git日志,并没有将feedback_tab合并到master中的条目.我原本以为它会成为最佳入场券?

有点困惑:/任何帮助欢迎!最大

git merge revert

41
推荐指数
4
解决办法
5万
查看次数

设置电子邮件标题,以便退回的电子邮件转到特定地址

在我们的rails应用程序中,我们发送一些系统生成的电子邮件,其中"发件人"地址设置为noreply@ourdomain.com.如果这些反弹,他们会被我们的邮件服务器发回这个地址.但是,我想做的是不要将退回的电子邮件发送回noreply@ourdomain.com,而是发送到不同的地址,例如bounced@ourdomain.com.

是否有一个标题或我可以在电子邮件中设置的内容将实现此目的,而我不必去调查我们的电子邮件服务器的变幻莫测?如果相关,我们会使用exim发送邮件.

干杯,最大

email exim bounce

35
推荐指数
4
解决办法
4万
查看次数

试图让selenium在rails 3中运行 - "WebMock :: NetConnectNotAllowedError"

我试图在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)

selenium capybara ruby-on-rails-3

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