【发布时间】:2014-02-19 01:57:14
【问题描述】:
如何在单击按钮后在单页应用程序中呈现 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 文件。
目前我有:
app/controllers/static_pages_controller.rb
def index
end
app/controllers/party_events_controller.erb
def food_event
end
app/views/static_pages/index.html.erb
<%= button_to "get events", 'layouts/party_events/', remote: true %>
我设置了“remote: true”,因为这应该表明链接将通过 AJAX 提交。
app/views/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。
【问题讨论】:
标签: ruby-on-rails