使用IRB,为什么Date&Time类会自动加载,但DateTime不是?我必须这样require 'date',这对我没有意义,因为我认为Date和DateTime都使用标准库'date'?
ruby-1.9.2-p290 :001 > Date
=> Date
ruby-1.9.2-p290 :002 > Time
=> Time
ruby-1.9.2-p290 :003 > DateTime
NameError: uninitialized constant Object::DateTime
from (irb):3
from /Users/kamilski81/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
ruby-1.9.2-p290 :004 > require 'date'
=> true
ruby-1.9.2-p290 :005 > require 'date'
=> false
ruby-1.9.2-p290 :006 > DateTime
=> DateTime
Run Code Online (Sandbox Code Playgroud) 我正在阅读Module文档,但似乎无法理解它们的差异,哪些应该在哪里使用.
有什么eval不同exec?
例如,我想按game_date排序,然后如果日期相同,按团队排序?最好的方法是什么?
@teams = @user.teams
@games = @teams.reduce([]) { |aggregate, team| aggregate + team.games}.sort_by(&:game_date)
Run Code Online (Sandbox Code Playgroud) 每次我点击IntelliJ里面的某个标签时它重新排序所有标签,我发现这是非常烦人的,因为我学习了标签的顺序,然后它切换了?
在Rails 3.1中,文档说
"4.2.2.13:source_type
:source_type选项指定has_one:through关联的源关联类型,该关联通过多态关联进行."
我刚读过:源解释但仍然没有得到source_type用于什么?
我目前有一个模型Attend将有一个状态列,这个状态列只有几个值.STATUS_OPTIONS = {:yes,:no,:maybe}
1)我不确定在用户插入Attend之前我如何验证这一点?基本上是java中的枚举,但我怎么能在rails中做到这一点?
我试图避免使用我的session[:referred_by],并想使用request.referrer.但是,我的RSpec测试失败,因为TestRequest它没有存储request.referrer
所以我必须执行以下操作才能使Rspec测试工作.有没有办法让它变得更好:
referrer = request.referrer ? request.referrer : '/'
redirect_to referrer, :alert => error_message
Run Code Online (Sandbox Code Playgroud) 当我运行'script/server'时一切正常,但是当我运行我的单元测试(rake test:units)时,我得到下面的错误,我不知道如何解决这个问题.
NameError: undefined local variable or method `logger' for #<GiveawayEligibleMemberTest:0x10477dff8>
/Users/kamilski81/Sites/pe/vitality_mall/vendor/rails/actionpack/lib/action_controller/test_process.rb:471:in `method_missing'
/Users/kamilski81/Sites/pe/vitality_mall/lib/update_giveaway_eligible_members.rb:17:in `is_valid_checksum?'
/Users/kamilski81/Sites/pe/vitality_mall/test/unit/giveaway_eligible_member_test.rb:26:in `test_that_checksum_is_valid'
/Users/kamilski81/Sites/pe/vitality_mall/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:60:in `__send__'
/Users/kamilski81/Sites/pe/vitality_mall/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:60:in `run'
Run Code Online (Sandbox Code Playgroud)
我尝试过:
class Test::Unit::TestCase
RAILS_DEFAULT_LOGGER = Logger.new(STDOUT)
RAILS_DEFAULT_LOGGER.level = Logger::WARN
logger = Logger.new(STDOUT)
logger.level = Logger::WARN
end
Run Code Online (Sandbox Code Playgroud)
以下是使用我的记录器的代码:
def is_valid_checksum?(csv_arr)
expected_row_count = csv_arr[0][3].to_i
logger.debug "Expected record count: #{expected_row_count}"
actual_row_count = csv_arr.nitems - 1
logger.debug "Actual record count: #{actual_row_count}"
checksum_valid = false
if expected_row_count == actual_row_count
logger.debug "Checksum is valid"
checksum_valid = true
end
return checksum_valid
end
Run Code Online (Sandbox Code Playgroud)
但这仍然无法解决错误
我来自Java世界,并在ruby/rails世界中继续听到这个术语"工人".它是什么?一个帖子?