簡體   English   中英

Rails部分無法加載到視圖中?

[英]Rails partial not loading into view?

我有一個應用程序,用戶可以在其中提交文件,還可以使用文件夾存儲和組織提交的文件。 在我看來,我會顯示所有用戶文件夾的列表,理想情況下,當用戶單擊某個文件夾時,與該文件夾關聯的所有提交都將加載到視圖中。

問題

我的看法如下:

<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

超鏈接看起來像“ / folders / 1”,它將正確地路由到show操作。 但是,當我單擊鏈接時,我在控制台中看到以下內容:

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 (恰好是我為此測試注入的位置)。 該文件如下所示:

$(".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的新手,我試圖一遍又一遍地調試此問題,但無濟於事。 Google搜索也沒有多大幫助,這就是為什么我來找你們和加爾斯。 即使您不確定該問題,也將非常感謝您從哪里開始尋找建議。

謝謝!

似乎您的問題是您應該使用:

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

代替:

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

因為這與docs的任何簽名都不匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM