Ruby on rails 从“基于渲染的显示视图”返回路径
这让我很困惑, 我有两种型号客户有很多:发票和发票属于客户, 我已设置了我的Ruby on rails 从“基于渲染的显示视图”返回路径,ruby-on-rails,routes,link-to,Ruby On Rails,Routes,Link To,这让我很困惑, 我有两种型号客户有很多:发票和发票属于客户, 我已设置了我的根目录以索引所有发票,也可以通过客户端显示视图访问发票。我的发票显示视图中有一个后退按钮,该按钮链接回发票所属的客户机:id 反向链接表单发票/显示 <%= link_to 'Back', client_path(@invoice.client), class: "btn btn-primary" %> 一个简单的反向链接: link_to 'Back', :back, class: "btn btn-pr
根目录
以索引所有发票
,也可以通过客户端显示
视图访问发票
。我的发票显示视图中有一个后退按钮
,该按钮链接回发票所属的客户机:id
反向链接表单发票/显示
<%= link_to 'Back', client_path(@invoice.client), class: "btn btn-primary" %>
一个简单的反向链接:
link_to 'Back', :back, class: "btn btn-primary"
在这种情况下应该这样做。它将使用HTTP\u REFERER
或Javascript函数进入上一页。有关更多信息,请参阅
更新:
如果您需要“简单反向链接”规则的一些例外,则必须创建自定义解决方案。其中一种解决方案可能是,默认情况下使用link\u to:back
,但在特殊情况下通过接受自定义的“back\u path”参数来覆盖它。您可以创建一个自定义帮助器来完成此操作
以下示例默认情况下使用标准的反向链接,但允许上一页设置back\u路径
参数,该参数将被back\u链接
帮助程序理解
# application_helper.rb
def back_link(params, name: "Back", class: "btn btn-primary")
if params[:back_path].present?
link_to name, params[:back_path], class: class
else
link_to name, :back, class: class
ens
end
现在,您可以在视图中正常使用链接:
<%= back_link(params) %>
在新建
页面表单中,您必须添加隐藏标签
以传递返回路径
参数:
# views/invoices/_form.html.erb
<%= hidden_field_tag 'back_path', params[:back_path] %>
最后,您现在可以使用back\u链接
helper来显示正确的链接:
# views/invoices/show.html.erb
<%= back_link(params) %>
#视图/发票/show.html.erb
我知道这很难看,但事实就是这样。。。此外,这并不是一个理想的解决方案,因为通常在浏览页面时需要一个反向链接的层次结构(并从不同路径访问页面),而此解决方案只解决第一个反向链接。但我认为这是一个可以建立的基础。一个简单的反向链接:
link_to 'Back', :back, class: "btn btn-primary"
在这种情况下应该这样做。它将使用HTTP\u REFERER
或Javascript函数进入上一页。有关更多信息,请参阅
更新:
如果您需要“简单反向链接”规则的一些例外,则必须创建自定义解决方案。其中一种解决方案可能是,默认情况下使用link\u to:back
,但在特殊情况下通过接受自定义的“back\u path”参数来覆盖它。您可以创建一个自定义帮助器来完成此操作
以下示例默认情况下使用标准的反向链接,但允许上一页设置back\u路径
参数,该参数将被back\u链接
帮助程序理解
# application_helper.rb
def back_link(params, name: "Back", class: "btn btn-primary")
if params[:back_path].present?
link_to name, params[:back_path], class: class
else
link_to name, :back, class: class
ens
end
现在,您可以在视图中正常使用链接:
<%= back_link(params) %>
在新建
页面表单中,您必须添加隐藏标签
以传递返回路径
参数:
# views/invoices/_form.html.erb
<%= hidden_field_tag 'back_path', params[:back_path] %>
最后,您现在可以使用back\u链接
helper来显示正确的链接:
# views/invoices/show.html.erb
<%= back_link(params) %>
#视图/发票/show.html.erb
我知道这很难看,但事实就是这样。。。此外,这并不是一个理想的解决方案,因为通常在浏览页面时需要一个反向链接的层次结构(并从不同路径访问页面),而此解决方案只解决第一个反向链接。但我认为这是可以建立的。这是可以的,除非创建了新发票,否则我将重定向到show
,因此从那里链接回来会带您回到新发票表单
这是可以的,除非创建了新发票,否则我将重定向到show
,因此从那里链接回来会带您回到新发票表单