Trip
Trip

Reputation: 27114

Rails console is not showing attribute when called

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

But when I do

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

Its breaking a few of my tests where they are looking for :

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

How can my tests be reassured there are line breaks?

Upvotes: 0

Views: 125

Answers (2)

Stefan
Stefan

Reputation: 114228

Seems like you have a custom getter, something like:

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"

In that case, you can fetch the raw attribute using Model[:attribute_name]:

reply[:body]
#=> "bar"

Upvotes: 1

SG 86
SG 86

Reputation: 7078

Change the snytax a little bit when you have backslash's

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

Upvotes: 0

Related Questions