0
這是一個非常混亂的情況,我想知道是否因爲我在「新」控制器。爲什麼調試顯示兩條記錄,當控制檯只顯示(正確)在Rails中的一個?
我一個新的電子郵件記錄有以下幾種觀點:
<% title "New Email" %>
<div id = "form">
<%= render :partial => 'form' %>
</div>
<div id = "tabs">
<h2>Campaign Activity</h2>
<%= debug @campaign %>
</div>
電子郵件創建嵌套在一個廣告活動ID。
從控制檯,campaign.emails只顯示1個電子郵件,這是正確的。
但是,上面顯示的調試@campaign線2個的電子郵件記錄,第二如下所示:
- &id001 !ruby/object:Email
attributes:
created_at:
title:
campaign_id: 1
updated_at:
days:
subject:
message:
attributes_cache: {}
changed_attributes:
campaign_id:
errors: !ruby/object:ActiveRecord::Errors
base: *id001
errors: !map:ActiveSupport::OrderedHash {}
我在新的視圖,它有一個標準的新控制器:
def new
@campaign = Campaign.find(params[:campaign_id])
@email = @campaign.emails.build
end
問題:從視圖中,我怎樣才能正確抓取廣告系列的相關電子郵件,以及爲什麼會看到「幻影」記錄?
是的,那是因爲你調用@ campaign.emails.build - 那就是你的「幻影」的紀錄。爲了更容易/有效地遍歷它們,請在調用構建之前將電子郵件分配給控制器中的實例變量。即@emails = @ campaign.emails,然後在@emails視圖循環中。 – jenjenut233 2010-11-30 01:17:24
我看到了......我應該在視圖中添加一個@ campaign.emails.sort,以便在做出<=> b比較 – Angela 2010-12-01 04:13:11