我試圖列出當前登錄的用戶的待辦事項列表。我正在使用設計作爲我的身份驗證寶石。每條語句都不能遍歷current_user.id
的代碼是這樣:
class TodosController < ApplicationController
def index
if user_signed_in?
@todo_items = Todo.all.find_by_user_id(current_user.id)
@new_todo = Todo.new
else
redirect_to new_user_session_path
end
end
end
但是當我運行此我得到這個錯誤
undefined method `each' for #<Todo:0x38b8d68>
我的循環語句是:
<div class="well">
<% @todo_items.each do |t| %> **#error in this line.**
<li> <%= t.todo_item %> </li>
<% end %>
</div>
我不知道是什麼我做錯了。 我也試過
@todo_items = Todo.all.find_by_user_id(params[:current_user.id])
我仍然得到相同的錯誤。 我對此很新,而且現在還沒有使用任何教程,因此請嘗試從新手角度解釋您的答案。謝謝
基本上spickermann回答它,你也可以重構這個,因爲你不if條件 - 設計得到了一個幫手。它被稱爲before_filter:authenticate_user !. –
我瞭解我正在使用的部分。我在那裏使用而且像魅力一樣工作。是的,我閱讀了有關之前的文件,並用它來代替「如果」。謝謝回覆。 –