我正在構建一個簡單的待辦事項列表應用程序,其中每個列表可以包含許多任務。Rails中@ list.tasks和@list.tasks.all的區別
list.rb
class List < ActiveRecord::Base
belongs_to :user
has_many :tasks
end
task.rb
class Task < ActiveRecord::Base
belongs_to :list
attr_accessible :description,:completed
validates :description, presence: true
validates :list, presence: true
end
我ListsController的表演動作: 列表#顯示
def show
@list = List.find_by_id(params[:id])
@task [email protected]
end
在我的名單
現在/ show.html .erb其中我顯示了該特定列表下的所有任務:
<% raise @list.tasks.all.inspect %>
這給出了輸出[]
。但是,當我改變show.html.erb像這樣:
<% raise @list.tasks.inspect %>
這使輸出[#<Task id: nil, description: nil, list_id: 13, created_at: nil, updated_at: nil, completed: nil>]
那麼,這是否意味着'find(:all)'方法只返回已保存的記錄? – lnreddy
不,它嘗試使用鍵找到散列:all。 :這裏不是一種方法。還有任務列表,你爲什麼要打電話給那個名單上的所有人? – Tala