小编Eki*_*bal的帖子

从Exception返回消息中删除"验证失败"消息

我有一个ActiveRecord模型帐户:

class Account < ActiveRecord::Base

  attr_accessible :msisdn

  validates_uniqueness_of :msisdn, :on => :create, 
    :message => "User Already Registered ."
end
Run Code Online (Sandbox Code Playgroud)

我有一个控制器试图创建一个帐户:

begin
  account = Account.create!(:msisdn => user)   
rescue Exception => e
  $LOG.error "Account #{user} : --> #{e.message}"  
end
Run Code Online (Sandbox Code Playgroud)

现在e.message总是返回:验证失败:Msisdn用户已经注册,我应该如何只获取用户已经注册的消息.请注意,我根本不使用视图,我想从控制器使用它,我正在使用Rails 3.

提前致谢

validation ruby-on-rails ruby-on-rails-3 rails-activerecord

4
推荐指数
2
解决办法
4972
查看次数

如何将分支中的提交移动到GIT中的另一个新分支?

我为我的工作开发了 git branch,我创建了一个名为feature1的新分支,并提交了1,2,3和4.

我需要将commit 3,4从feature1分支移动到新创建的分支feature2.

应该从feature1中删除提交3,4 并将其添加到新的分支feature2,因此最终结果应该是feature1 with 1和2 branch以及feature2 with 3和4.

请注意,目前我已开发设有1个分支机构.feature2尚未添加.

实现这一目标的最佳方法是什么?我尝试了git cherry-pick但是想确保最好的方法.

git git-branch

4
推荐指数
1
解决办法
81
查看次数

如何对可能为零的值使用sort_by?

假设我有一个数组:[{one: 1, two: 2}, {one: 5, two: 6}],我想使用sort_by之类的东西:

[1] pry(main)> [{one: 1, two: 2}, {one: 5, two: 6}].sort_by{|x| [x[:one], x[:two]]}
Run Code Online (Sandbox Code Playgroud)

但是,当我为其中一个值引入nil时,我得到ArgumentError: comparison of Array with Array failed

=> [{:one=>1, :two=>2}, {:one=>5, :two=>6}]
[2] pry(main)> [{one: 1, two: 2}, {one: nil, two: 6}].sort_by{|x| [x[:one], x[:two]]}
ArgumentError: comparison of Array with Array failed
Run Code Online (Sandbox Code Playgroud)

如何避免此错误?

ruby ruby-on-rails

4
推荐指数
1
解决办法
2459
查看次数

使用EM-HTTP消耗队列:无法创建新套接字:打开的文件过多

我有一个ruby进程,它使用amqp gem从RabbitMQ队列中消耗msgs,如下所示:

require "bundler/setup"
require "amqp"
require 'eventmachine'
require 'em-http'


AMQP.start(:host => $AMQP_URL) do |connection|
  @channel ||= AMQP::Channel.new(connection)
  @queue   ||= @channel.queue("results")

  puts " [*] Waiting for messages. "

  @queue.subscribe do |body|    
    http = EventMachine::HttpRequest.new(URL).post :body => body          

    http.callback {
      # do something
    }        

    http.errback  { 
      $LOG.error "[errorback] -> #{http.error}"    
    }
  end
end
Run Code Online (Sandbox Code Playgroud)

现在URL很慢,队列有很多消息(> 30K),我在日志中遇到了这个错误:

**[errorback] -> unable to create new socket: Too many open files** 
Run Code Online (Sandbox Code Playgroud)

任何帮助都将受到高度赞赏,因为我一直在努力寻找如何解决它,但根本没有任何结果.

提前致谢

ruby amqp rabbitmq eventmachine

2
推荐指数
1
解决办法
370
查看次数

如何从控制器的Class方法访问路由路径?(路轨)

我在application_controller.rb中有一个类方法:

def self.method1
  path = some_path
end
Run Code Online (Sandbox Code Playgroud)

现在看来我无法访问some_path,因为通常我需要在控制器(实例方法)中使用route。

在这里访问路线的最佳方法是什么?

谢谢

routes ruby-on-rails ruby-on-rails-4

2
推荐指数
1
解决办法
674
查看次数

如何为Ember js添加自定义环境?

我正在使用Ember.js 2.5.0,目前看来Ember仅限于三种环境development,test而且production.我怎样才能添加一些其他的env例如staging

我有一个临时服务器,所以我们可以测试我们的应用程序,我想在那里使用不同的配置(比开发一个).有任何解决方法吗?

ember.js ember-cli

2
推荐指数
1
解决办法
1144
查看次数

如何为ember添加默认值有多少关系?

我使用的灰烬2.5.0,我有两个型号serviceavailability它看起来像:

// availability
import DS from 'ember-data';

export default DS.Model.extend({
  day: DS.attr('string'),
  enabled: DS.attr('boolean'),
  startAt: DS.attr('string'),
  endAt: DS.attr('string'),
  service: DS.belongsTo('service')
});
Run Code Online (Sandbox Code Playgroud)

service它看起来像:

import DS from 'ember-data';

export default DS.Model.extend({
  name: DS.attr('string'),
  description: DS.attr('string'),
  availabilities: DS.hasMany('availability',
    {
      defaultValue:
        [
          {
            day: 'saturday',
            enabled: false,
            startAt: '',
            endAt: ''
          },
          {
            day: 'sunday',
            enabled: false,
            startAt: '',
            endAt: ''
          }
        ]
    }
  )
});
Run Code Online (Sandbox Code Playgroud)

你可以看到我试图使用defaultValue但没有运气.对于新路线,如果我们要创建新service记录,我想设置默认值.

任何帮助表示赞赏.

ember.js ember-data ember-cli

2
推荐指数
1
解决办法
579
查看次数

我用分支推送时,.gitignore不会忽略文件

我的项目有两个分支,主分支和测试分支.当我在分支测试时,我编辑了文件.gitignore我添加了vendor/*.但由于某种原因,当我做git push origin test:掌握它仍然推送供应商的文件.有没有办法刷新缓存或类似的东西,以确保它的工作?

提前致谢

git github

1
推荐指数
1
解决办法
2217
查看次数

如何使用Ruby将阿拉伯语/波斯语翻译成英语?

如何将具有阿拉伯语/波斯语数字的字符串转换为英语?

就像我有:

str1 = "????"
str2 = "12??"
str3 = "some string that contains persian digits like ??"
Run Code Online (Sandbox Code Playgroud)

是否有任何函数将其编码为英语,如果字符串包含这样的数字来转换它,就像最终结果一样:

str1 = "1212"
str2 = "1212"
str3 = "some string that contains persian digits like 12"
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby encoding localization type-conversion arabic

1
推荐指数
1
解决办法
1599
查看次数

RubyMotion错误:工具'xcodebuild'需要Xcode

我使用以下方法创建了一个新的RubyMotion项目:

motion create NewMotion
Run Code Online (Sandbox Code Playgroud)

然后我安装了相关的包:

bundle install
Run Code Online (Sandbox Code Playgroud)

现在每当我运行应用程序时,我都会收到错误:

?  NewMotion  rake
/Users/info/.rvm/gems/ruby-2.0.0-p353/gems/bundler-1.6.2/lib/bundler/runtime.rb:222: warning: Insecure world writable dir /usr/local in PATH, mode 040777
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb:212: warning: Insecure world writable dir /usr/local in PATH, mode 040777
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
rake aborted!
NoMethodError: undefined method `[]' for nil:NilClass
/Library/RubyMotion/lib/motion/project/xcode_config.rb:87:in `xcode_version'
/Library/RubyMotion/lib/motion/project/xcode_config.rb:99:in `validate'
/Library/RubyMotion/lib/motion/project/template/ios/config.rb:85:in `validate'
/Library/RubyMotion/lib/motion/project/config.rb:115:in `setup'
/Library/RubyMotion/lib/motion/project/app.rb:66:in `config'
/Library/RubyMotion/lib/motion/project/template/ios.rb:81:in `block in <top (required)>'
/Users/info/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/Users/info/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => …
Run Code Online (Sandbox Code Playgroud)

rubymotion

1
推荐指数
1
解决办法
1865
查看次数

Rails Eager loading(包括)和where子句不起作用?

我正在使用Rails 4.1和我的模型:

Client has_many TicketLists
TicketList has many projects
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试在客户端模型中使用eager loading,例如:

class Client < ActiveRecord::Base
  def ticket_lists_with_project_id(project_id)
    ticket_lists.includes(:projects).where("projects.id = ?", project_id)
  end  
end  
Run Code Online (Sandbox Code Playgroud)

当我这样做时:

Client.find(2).ticket_lists_with_project_id(1)
  Client Load (1.7ms)  SELECT  "clients".* FROM "clients"  WHERE "clients"."is_destroyed" = 'f' AND "clients"."is_closed" = 'f' AND "clients"."id" = $1 LIMIT 1  [["id", 2]]
PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "projects"
LINE 1: ...d" = 'f' AND "ticket_lists"."client_id" = $1 AND (projects.i...
                                                             ^
: SELECT "ticket_lists".* FROM "ticket_lists"  WHERE "ticket_lists"."is_destroyed" = 'f' AND "ticket_lists"."client_id" = …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails eager-loading ruby-on-rails-4

1
推荐指数
1
解决办法
4268
查看次数