2013-07-15 44 views
0

我有一個應用程序,其中用戶提交和文件夾來存儲和組織他們提交到。在我看來,我顯示了所有用戶文件夾的列表,理想情況下,當用戶單擊文件夾時,與文件夾關聯的所有提交都會加載到視圖中。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的新手,我試圖一遍又一遍調試這個問題無濟於事。谷歌搜索也沒有太多的幫助,這就是爲什麼我來找你們和加爾斯。即使你不確定這個問題,建議從哪裏開始尋找將非常感激。

謝謝!

回答

0

看來你的問題,你應該使用:的

<%= link_to 'Folder ' + folder.id, folder_path(folder), :remote=> true %> 

代替:

<%= link_to folder_path(folder.id), :remote=> true, :id=>folder.id %> 

由於這種不簽署任何從docs匹配。

+0

謝謝!必須從其他嘗試幫助我的人處獲得錯誤信息。 –