Rails控制台在调用时未显示属性

时间:2013-10-02 13:46:38

标签: ruby-on-rails ruby

>> Reply.first
=> #< Reply id: 1, body: "line1\r\n\r\nline2\r\n" >

但是当我做的时候

>> Reply.first.body
=> "line1"

它打破了我们正在寻找的一些测试:

assert_difference 'Reply.where(:body => "line1\r\n\r\nline2").count' do

我的测试怎么可以放心,有换行符?

2 个答案:

答案 0 :(得分:1)

好像你有一个自定义的getter,比如:

class Reply < ActiveRecord::Base
  def body
    "foo"
  end
end

reply = Reply.new(body: "bar")
#=> #<Reply id:nil, body: "bar" created_at: nil, updated_at: nil>

reply.body
#=> "foo"

在这种情况下,您可以使用Model[:attribute_name]获取原始属性:

reply[:body]
#=> "bar"

答案 1 :(得分:0)

当你有反斜杠时改变语法

assert_difference 'Reply.where("body = 'line1\r\n\r\nline2\r\n'").count' do