gpt4 book ai didi

ruby-on-rails - rails respond_to 和各种形式的 html 响应

转载 作者:行者123 更新时间:2023-12-04 20:58:57 26 4
gpt4 key购买 nike

我经常用

respond_to do |format|
...
end

在 Rails 中用于我的 Restful 操作,但我不知道处理各种形式(例如 html 响应)的理想解决方案是什么。例如,调用 Action A 的 view1 可能期望返回 html,其中包含包装在 UL 标签中的小部件列表,而 view2 期望包装在表格中的相同小部件列表。一个 Restfully 如何表达我不仅想要返回一个 html 格式的响应,而且我想要它包含在一个表格中,或者一个 UL、OL、选项或一些其他常见的面向列表的 html 标签?

最佳答案

这是基本思想:

Controller

class ProductsController < ApplicationController

def index

# this will be used in the view
@mode = params[:mode] || 'list'

# respond_to is used for responding to different formats
respond_to do |format|
format.html # index.html.erb
format.js # index.js.erb
format.xml do # index.xml.erb
# custom things can go in a block like this
end
end
end

end

观看次数
<!-- views/products/index.html.erb -->
<h1>Listing Products</h1>

<%= render params[:mode], :products => @products %>


<!-- views/products/_list.html.erb -->
<ul>
<% for p in products %>
<li><%= p.name %></li>
<% end %>
</ul>


<!-- views/products/_table.html.erb -->
<table>
<% for p in products %>
<tr>
<td><%= p.name %></td>
</tr>
<% end %>
</table>

用法:

您可以使用以下方法链接到其他 View “模式”:
<%= link_to "View as list",   products_path(:mode => "list") %>
<%= link_to "View as table", products_path(:mode => "table") %>

注:您需要做一些事情来确保用户不会尝试在 URL 中指定无效的查看模式。

关于ruby-on-rails - rails respond_to 和各种形式的 html 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2820228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com