小编Sur*_*rya的帖子

使用多个属性共享枚举声明值

我希望有一个具有多个属性的类,可以使用数值保存工作日.

summary_weekday    :integer
collection_weekday :integer
Run Code Online (Sandbox Code Playgroud)

我以为我可以使用带有两个声明的Enum将整数映射到值:

enum summary_weekday: %w(monday tuesday wednesday thursday friday saturday sunday)
enum collection_weekday: %w(monday tuesday wednesday thursday friday saturday sunday)
Run Code Online (Sandbox Code Playgroud)

但Rails不接受,我不能在同一个类中两次定义相同的值.

您尝试在模型"QuestionCategory"上定义名为"summary_weekday"的枚举,但这会生成一个实例方法"monday?",该方法已由另一个枚举定义.

我怎么解决这个问题?

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

29
推荐指数
2
解决办法
6659
查看次数

访问我的AWS S3帐户的存储桶时出现问题

我尝试在我的irb控制台中建立与我的aws s3帐户的连接 -

AWS::S3::Base.establish_connection!(:access_key_id => 'my access key', :secret_access_key => 'my secret key', :server => "s3-ap-southeast-1.amazonaws.com")
Run Code Online (Sandbox Code Playgroud)

它运作良好并提示 -

=> #<AWS::S3::Connection:0x8cd86d0 @options={:server=>"s3-ap-southeast-1.amazonaws.com", :port=>80, :access_key_id=>"my access key", :secret_access_key=>"my secret key"}, @access_key_id="my access key", @secret_access_key="my secret key", @http=#<Net::HTTP s3-ap-southeast-1.amazonaws.com:80 open=false>>
Run Code Online (Sandbox Code Playgroud)

我有一个基于"新加坡地区"的桶和该端点,即服务器是:s3-ap-southeast-1.amazonaws.com所以当我尝试使用此命令访问它时 -

AWS::S3::Service.buckets
Run Code Online (Sandbox Code Playgroud)

它正确地获取了我帐户中的所有存储桶 -

=> [#<AWS::S3::Bucket:0x8d291fc @attributes={"name"=>"bucket1", "creation_date"=>2011-06-28 10:08:58 UTC}, @object_cache=[]>,
#<AWS::S3::Bucket:0x8d291c0 @attributes={"name"=>"bucket2", "creation_date"=>2011-07-04 07:15:21 UTC}, @object_cache=[]>,
#<AWS::S3::Bucket:0x8d29184 @attributes={"name"=>"bucket3", "creation_date"=>2011-07-04 07:39:21 UTC}, @object_cache=[]>]
Run Code Online (Sandbox Code Playgroud)

其中bucket1属于新加坡地区,其他2属于美国地区.所以,当我这样做时 -

AWS::S3::Bucket.find("bucket1")
Run Code Online (Sandbox Code Playgroud)

它告诉我这个错误:

AWS::S3::PermanentRedirect: The bucket you are attempting to access must be addressed using the specified endpoint. …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails amazon-s3 ruby-on-rails-3

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

RSpec中"be_true"和"be true"之间的区别是什么?

任何一个可以请解释一下我一下的区别be_true,并be true用简单的例子红宝石英寸 我也见过be_true并且be_false改为be_truthybe_falsey

我有一个'be true'工作的例子,但当我尝试使用'be_true''be_truthy'规格失败.

我使用的是RSpec 3.1.7版

ruby rspec ruby-on-rails rspec3

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

如何从句子中删除最后一个单词(一个字符串)

如何删除最后一个元素?例如,我有这样的字符串:

str1 = "My testing String"
str2 = "My another testing string"
Run Code Online (Sandbox Code Playgroud)

我需要一种简洁的方式来显示输出:

str1 = "My testing"
str2 = "My another testing"
Run Code Online (Sandbox Code Playgroud)

这就是我能做的:

str1 = str1.split(" ")
str1.delete(str1.last)
str1.join(" ")
# => "My testing"
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何简洁的方法可以在一行中执行此操作,例如:str.split(" ", 2).last => "testing string",应该显示"my testing".

编辑

谢谢你们多个有趣的答案.我感谢你的努力和时间.但是,我必须公平,所以我决定对每个人的答案进行基准测试.这是带基准的报告:

#!/usr/bin/ruby
require 'benchmark'
str2 = "My another testing string"
n = 500
Benchmark.bm(20) do |x|
  x.report("str2[/(.*)\s/,1]                  "){ n.times { str2[/(.*)\s/,1] } }
  x.report("str2[0...str2.rindex(' ')]        "){ n.times { str2[0...str2.rindex(' ')] } }
  x.report("str2.split(' ')[0...-1].join(' …
Run Code Online (Sandbox Code Playgroud)

ruby

4
推荐指数
3
解决办法
5919
查看次数

初始化API的好地方在哪里?

我想使用这个api:https://github.com/coinbase/coinbase-ruby,第一步是初始化API,如下所示:

coinbase = Coinbase::Client.new(ENV['COINBASE_API_KEY'], ENV['COINBASE_API_SECRET'])
Run Code Online (Sandbox Code Playgroud)

我想知道放置此代码的最佳位置是什么,如果我把它放在那里,我将如何访问它?我希望这个变量(coinbase)可以在应用程序中随处访问.

谢谢!

ruby-on-rails coinbase-api

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

在一行中用逗号分隔许多变量.C#

抱歉这个愚蠢的问题,但我找不到答案.那么,为什么我不能在C#中编写这样的代码:

int a = 10, b = 20, c = 30, d = 40;    
a = b, c = d;
Run Code Online (Sandbox Code Playgroud)

在C++中我可以编写它就可以了.

为什么它不能用C#编译?

c# comma

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

angularjs 数学计算

我正在研究一个贷款计算器,我使用离子范围滑块来选择贷款金额、利率、贷款期限等。还有一个每月支付范围。当贷款金额、利率和期限发生变化时,这个月还款范围应该像这样计算。

(loanamount*interest rate)/loan duration
Run Code Online (Sandbox Code Playgroud)

因此,当我们更改贷款金额、利率和贷款期限时,基本上每月还款范围应该会发生变化。我怎样才能做到这一点?

到目前为止我的代码:

<content has-header="true">


    <div class="item item-divider">
     Select your Loan Amount : 
    </div>
    <div class="item range">
    <div id='slider'>
    <input type="range" name="number" min="100" max="1000000" step="100.00"  ng-model="loanAmount">
    <font color="#009ACD"><b>Loan Amount:</b></font> <input type="text" ng-model="loanAmount" min="100" max="1000000" />
    </div>
    </div>

     <div class="item item-divider">
     Select your Interest Rate: 
    </div>
    <div class="item range">
    <div id='slider'>
    <input type="range" name="volume" min="0" max="100" step="0.01"  ng-model="interestRate">
    <font color="#009ACD"><b>Interest Rate:</b></font> <input type="text" ng-model="interestRate" min="0" max="100" />
    </div>
    </div>

    <div class="item item-divider">
     Select your Loan Term : 
    </div> …
Run Code Online (Sandbox Code Playgroud)

html angularjs ionic-framework

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

ruby将值添加到以逗号分隔的字符串,但第一个元素除外

    device_target = ["3001", "3002", "3003"]
    devices = ",kv1101="
    device_target.map {|d|
      case d
        when "30000" #desktop
          devices << ":9"
        when "30001" # smartphone
          devices << ":3:4:6:8"        
        when "30002" #tablet
          devices << ":2:5:7"
        when "30003" #feature_phone
          devices << ":1"
      end
Run Code Online (Sandbox Code Playgroud)

我的目标是获得devices = "kv1101=3:4:6:8:2:5:7:1".但是,我怎样才能避免:第一次进入这个冒号?订单无关紧要.

ruby string ruby-on-rails

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

使用rspec,混淆了mock和stub对象之间的区别?

模拟和存根有什么区别,它们看起来和我很相似?

如果有人可以给出一个真实世界的例子,告诉他们什么时候使用哪个,或者它们是否可以互换但是有一个最好的做法,例如何时使用模拟或存根,那将会很好

rspec ruby-on-rails

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

如何覆盖Rails的默认迁移生成器模板

我需要覆盖这些迁移模板:

https://github.com/rails/rails/blob/e20dd73df42d63b206d221e2258cc6dc7b1e6068/activerecord/lib/rails/generators/active_record/migration/templates/migration.rbhttps://github.com/rails/rails/blob/e20dd73df42d63b206d221e2258cc6dc7b1e6068/ ActiveRecord的/ lib目录/导轨/发电机/ active_record /迁移/模板/ create_table_migration.rb

在我的rails应用程序中,以便他们从rails应用程序而不是gem本身获取模板.到目前为止,我已尝试过所有可能的组合,但没有运气.

我尝试过的:

- Rails.root/lib/templates/rails/migration/migration.rb
- Rails.root/lib/templates/rails/migration_generator/migration.rb
- Rails.root/lib/rails/templates/rails/migration/migration.rb
- Rails.root/lib/rails/templates/rails/migration_generator/migration.rb
- Rails.root/lib/rails/generators/templates/rails/migration/migration.rb
- Rails.root/lib/rails/generators/templates/rails/migration_generator/migration.rb
- Rails.root/lib/rails/templates/generators/rails/migration/migration.rb
- Rails.root/lib/rails/templates/generators/rails/migration_generator/migration.rb
- Rails.root/lib/rails/generators/active_record/migration/templates/migration.rb
- Rails.root/lib/rails/generators/active_record/migration_generator/templates/migration.rb
- Rails.root/lib/rails/generators/active_record/templates/migration.rb
- Rails.root/lib/rails/generators/active_record/templates/migration.rb
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?

activerecord ruby-on-rails ruby-on-rails-3 rails-generators

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