2013-10-02 27 views
0
>> Reply.first 
=> #< Reply id: 1, body: "line1\r\n\r\nline2\r\n" > 

當但是當我做Rails的控制檯沒有顯示屬性稱爲

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

它打破我的一些測試,他們正在尋找:

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

如何將我的測試是放心還有換行符?

+1

好像你有一個自定義的「吸氣」爲「身體」 – Stefan

+0

是否使用'ActionMailer'或其他郵件寶石? – lurker

+1

嘗試使用'Reply.first [:body]'獲取屬性' – Stefan

回答

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" 
+0

這個奇怪的是不工作..'Reply.where(body:Reply.first [:body])' – Trip

+0

'Reply.where(body:「line1 \ r \ n \ r \ nline2 \ r \ n「)'? – Stefan

+0

沒有,也沒有工作..奇怪 – Trip

0

更改snytax一點點,當你有反斜槓的

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

嗯,仍然不叫它.. – Trip

相關問題