我試圖做有條件分配:在||中賦值爲零值測試
entries = (@instance_1 || @instance_2)
如果@instance_1
是零,我想@instance_2
被分配到entries
。在這種情況下,我知道其中一方會有價值。
但是,我遇到了一個問題,其中@instance_1
爲零,@instance_2
有一個值,但@instance_1
正在分配中使用。
我接近這個不正確嗎?
這是在Rails應用程序的上下文中。我甩了出來,從撬一些數據,所以你可以看到它是如何反應:
這裏的地方撬聲明正在發生:
entries = (@time_entry || @times_entries)
binding.pry
現在,entries
值:
[1] pry(#<TimelogController>)> entries
=> nil
的值爲@time_entry
:
[2] pry(#<TimelogController>)> @time_entry
=> nil
而值@time_entries
:
[3] pry(#<TimelogController>)> @time_entries
=> [#<TimeEntry:0x00000006f6f878
id: 1838,
project_id: 10,
user_id: 8,
issue_id: 1481,
hours: 1.0,
comments: "hey now",
activity_id: 9,
spent_on: Fri, 20 Nov 2015,
tyear: 2015,
tmonth: 11,
tweek: 47,
created_on: Fri, 20 Nov 2015 20:07:06 UTC +00:00,
updated_on: Fri, 20 Nov 2015 20:07:06 UTC +00:00,
freshbooks_time_entry: nil>]
所以在這種情況下,它返回零,即使第二個參數(@time_entries)
有一個值。
你的代碼有一個錯字:'@實例2'而不是'@ instance_2'。這會導致SyntaxError,但是,我懷疑你沒有發佈你的實際代碼。 –
你確定你的假設? –
@Jordan是的,不是我的實際代碼。只是一個例子。編輯。 @Dave Newton我假設你的意思是我對他們的值的假設:我用'pry'發現@ instance_1是零,@ instance_2是一個填充對象,但條目被設置爲等於零 – djt