2014-02-19 33 views
1

如何在單擊按鈕(假設至少有兩個控制器正在播放)後在單頁應用程序中呈現Rails局部?單擊按鈕後在單頁應用程序中渲染Rails部分

這我不清楚,不管我有多麼材料閱讀:

  • 我多少控制器需要
  • 我觀看了多少次需要
  • 我多少行動需要
  • 要哪個行動是否需要分配資源?

這正是我想要做的事:

我想爲用戶訪問我的應用程序的索引頁面。在該頁面上,他們應該能夠點擊一個按鈕來「獲得聚會事件結果」。返回給他們的結果應該來自數據庫。這個按鈕點擊請求應該是AJAX。

從我個人理解,這意味着

  • 我需要兩個控制器:1)StaticPagesController和2)PartyEventsController。這意味着我應該有派對活動app/views/layouts/_part_events_results.html.erb。
  • 我應該有一個app/views/static_pages/index.html.erb視圖。
  • 這意味着我需要一個位於assets/javascript路徑之外的js.erb文件。

目前我有:

應用程序/控制器/ static_pages_controller.rb

def index 
end 

應用程序/控制器/ party_events_controller.erb

def food_event 
end 

應用程序/意見/ static_pages/index.html.erb

<%= button_to "get events", 'layouts/party_events/', remote: true %> 

我有「遠程:真正的」設置,因爲這應該表示該鏈路將通過AJAX提交。

應用程序/視圖/ static_pages/_party_events.html.erb

<% food_events.each do |event| %> 
    <li><%= event.text %></li> 
    <li><%= event.location %></li> 
    --------------------- 
    <% end %> 

其他信息,如果有幫助: - Rails的4.0.0 - 有最終將多種類型的事件,例如「食物」,「音樂」。我是否需要查看每個部分? - 只要是單頁應用程序,就可以使用任何設計解決方案。我知道如何在PHP/JS中實現這一點,但我很難理解如何使用MVC。

任何幫助將不勝感激 - 我用盡頭髮拔出。謝謝。

回答

1

在你的靜態頁面中,你應該有一個DOM元素可用於替換或修改ajax。

在你button_to,你應該指定控制器和動作,你想打

在你party_event_controller#動作,你可以用一個js響應,並把它渲染一個模板,#action.js.erb這將執行DOM操作來替換或更新頁面。

類似的問題問:Rails - updating div w/ Ajax and :remote => true

的教程顯示與無礙的javascript AJAX CRUD:http://stjhimy.com/posts/07-creating-a-100-ajax-crud-using-rails-3-and-unobtrusive-javascript

+0

我想工作了這一點。我在哪裏粘貼action.js.erb文件?行動名稱很微不足道?我注意到很多人使用相同的部分:創建,顯示,刪除 – tandy

+1

您將根據哪個控制器將action.js.erb視爲視圖。通常,rails中的動作名稱是CRUD,Create,Show,Delete是一些CRUD,它還具有New,Edit,Update,Index。 – jamesy829

+0

啊,但我可以說我的行動什麼嗎?本質上,行動的名稱必須在相應的視圖中被鏡像,我想。 (你真的只想要new.html.erb,edit.html.erb,update.html.erb和index.html.erb視圖嗎?) – tandy

相關問題