我在本地沒有遇到錯誤,但是在Heroku上。錯誤是:ActionView :: Template :: Error(未定義方法`each'for nil:NilClass):
'::的ActionView模板::錯誤(未定義的方法`每個' 爲無:NilClass)」
在 '每個' 指的是每個i在@position在<%爲i的下面我的用戶callback.html.erb鑑於@positions%>行:
<% for i in @positions %>
<strong>
<% begin %>
<%= @user.positions.find_by_id(i).title + " at " %>
<% rescue %>
<% end %>
<% begin %>
<%= @user.positions.find_by_id(i).company %>
<% rescue %>
<% end %>
</strong>
這是我的身份驗證控制器的相關部分(回調部)
def callback
...
@user = current_user
...
#positions
for i in 0..(positions.count-1)
begin
@company_i = companies[i]['name']
rescue
end
begin
@title_i = positions[i]['title']
rescue
end
begin
@industry_i = companies[i]['industry']
rescue
end
begin
@start_month_i = positions[i]['start-date']['month']
@start_year_i = positions[i]['start-date']['year']
rescue
end
begin
@end_month_i = positions[i]['end-date']['month']
@end_year_i = positions[i]['end-date']['year']
rescue
end
begin
@li_pos_id_i = positions[i]['id']
rescue
end
if Position.find_by_li_pos_id(@li_pos_id_i).nil?
@user.positions.build(li_pos_id: @li_pos_id_i, company: @company_i, title: @title_i,
industry: @industry_i, start_month: @start_month_i, start_year: @start_year_i,
end_month: @end_month_i, end_year: @end_year_i)
end
end
@user.save
@positions = @user.positions.map(&:id)
end
我認爲它有這樣用我的.find_by方法處理返回一個零值,但我不知道如何解決它。謝謝!
EDITED AUTH控制器:
positions.each do |position|
begin
@li_pos_id = position.id
@title = position.title
@company = position.company.name
@industry = position.company.industry
@start_month = position.start_date.month
@start_year = position.start_date.year
@end_month = position.end_date.month
@end_year = position.end_date.year
rescue
end
unless Position.find_by_li_pos_id(@li_pos_id)
current_user.positions.build(li_pos_id: @li_pos_id, title: @title, company: @company, industry: @industry,
start_month: @start_month, start_year: @start_year, end_month: @end_month, end_year: @end_year)
end
@user.save
@user.positions.save
end
您確定當前用戶在生產中創建了職位嗎?該關聯中可能沒有任何對象 –
在這種情況下'map'將返回一個空數組。 – tadman
@tadman這絕對是醜陋的,謝謝你的意見。我修改了它並粘貼在編輯中。問題在於位置模型數據(User has_many positions)沒有保存到heroku數據庫。任何想法爲什麼?我的用戶數據保存得很好 – keypulsations