我有一個應用程序,其中用戶提交和文件夾來存儲和組織他們提交到。在我看來,我顯示了所有用戶文件夾的列表,理想情況下,當用戶單擊文件夾時,與文件夾關聯的所有提交都會加載到視圖中。Rails部分無法加載到視圖中?
的問題
我的看法是這樣的:
<div id="submission-list-container">
<% current_user.folders.each do |folder| %>
<%= link_to folder_path(folder.id), :remote=> true, :id=>folder.id %>
<div class="post-container" id="<%= folder.id %>">
<%= folder.title %> <p id="created-time">Created <%= folder.created_at.strftime("%e/%-m") %></p>
</div>
<% end %>
</div>
Rails的循環關聯到CURRENT_USER每個文件夾上,並把它放入視圖。如您所見,我有一個link_to
,它轉到文件夾模型上show
操作的路徑。我傳入每個文件夾的ID。
什麼是應該發生的是,其路由到文件夾中的控制器的show動作,它看起來像這樣:
def show
@folder = Folder.find(params[:id])
respond_to do |f|
f.js
f.json
end
end
超鏈接看起來像「/文件夾/ 1」,這將正確地路由到展示行動。但是,當我點擊鏈接時,我在控制檯中看到以下內容:
Processing by HomeController#index as JS
Parameters: {"id"=>"1"}
User Load (2.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = 2 LIMIT 1
Folder Load (1.7ms) SELECT "folders".* FROM "folders" WHERE "folders"."user_id" = 2
這顯然是錯誤的。它應該加載文件夾與我通過folder.id,而不是current_user ID。
我還有一個文件,標題爲show.js.erb,位於/ views/home。這個文件是爲了在.post-container
類中注入一個部分(我正在爲此測試注入它)。該文件是這樣的:
$(".post-container").append('<%=j render :partial => 'contents', :locals => {:folder => folder } %>');
我不會發布我的部分,因爲這帖子越來越很長,但我已經測試過它,知道它的工作原理。最後,爲了清楚起見,我做了rake routes
,並得到下面的輸出(有關文件夾的所有內容):
folders GET /folders(.:format) folders#index
POST /folders(.:format) folders#create
new_folder GET /folders/new(.:format) folders#new
edit_folder GET /folders/:id/edit(.:format) folders#edit
folder GET /folders/:id(.:format) folders#show
PUT /folders/:id(.:format) folders#update
DELETE /folders/:id(.:format) folders#destroy
作爲Rails的新手,我試圖一遍又一遍調試這個問題無濟於事。谷歌搜索也沒有太多的幫助,這就是爲什麼我來找你們和加爾斯。即使你不確定這個問題,建議從哪裏開始尋找將非常感激。
謝謝!
謝謝!必須從其他嘗試幫助我的人處獲得錯誤信息。 –