gpt4 book ai didi

html - 如何添加 "link_to ' 返回搜索结果'"feature Rails

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:07 25 4
gpt4 key购买 nike

我有 views/search/search_textbook.html.erb显示搜索结果。当用户点击 <%=link_to "#{textbook.title}", textbook_path(textbook.id) %> 的 textbook.title 时, 用户正在调用 show方法来自 textbooks_controller .

然而,里面views/textbooks/show.html.erb<%= link_to 'Back to list', textbooks_path %>仅将用户带到教科书的索引页 ( views/textbooks/index.html.erb )。

下面是我显示搜索结果的页面views/search/search_textbook.html.erb :

<div class="container">
<div class="row">
<div class="col-sm-12">
<table class = "table table-striped">
<h1>Textbook Search Results</h1>

<thead>
<tr>
<th>Textbook Title</th>
<th>Subject</th>
<th>Price</th>
<th>Accept Offer</th>
<th>Created on</th>
</tr>
</thead>

<tbody>
<% @textbooks.each do |textbook| %>
<tr>
<!--<td><%= textbook.title %></td>-->
<td><%=link_to "#{textbook.title}", textbook_path(textbook.id) %></td>
<td><%= textbook.subject %></td>
<td>$<%= textbook.price %></td>
<td>
<% if textbook.offer == true %>
<!--<%= "\u2713"%>-->
<p class="offer_yes">&#x2713;</p>
<% else %>
<!--<%= "\u2715" %>-->
<p class="offer_no">&#x2715;</p>
<%end%>
</td><!--somehow below need Date.parse()-->
<td><%= textbook.created_at.strftime("%d %b. %Y") %></td>
</tr>
<% end %>
</tbody>
</table>

<br>

<div>
<%= form_tag search_textbook_path, :method => :get do %>
<p>
<a style="color:#000000" title="Suggest!" data-toggle="popover" data-trigger="hover" data-content="Title or Subject">
<%= text_field_tag :search, params[:search], placeholder: "Search textbooks" %>
</a>
<%= submit_tag "Search", :name => nil, class: "btn btn-success btn-sm" %>
<% end %>
</div>

<%= link_to 'Sell Textbook', new_textbook_path, class: "btn btn-primary" %>
<%= link_to 'Back to list', textbooks_path %>

<script>
$(document).ready(function(){
$('[data-toggle="popover"]').popover();
});
</script>

</div>
</div>
</div>

下面是我的views/textbooks/show.html.erb文件:

<div class="container">
<div class="row">
<!--<div class="col-xs-offset-4 col-xs-4 col-xs-offset-4">-->
<div class="col-sm-offset-4 col-sm-4 col-sm-offset-4">

<!--<p id="notice"><%= notice %></p>-->

<p>
<h4><strong>Title:</strong>
<%= @textbook.title %></h4>
</p>

<p>
<strong>Subject:</strong>
<%= @textbook.subject %>
</p>

<p>
<strong>Price:</strong>
$<%= @textbook.price %>
</p>

<p>
<strong>Accept Offer:</strong>
<%if @textbook.offer == true%>
<%='Yes'%>
<%else%>
<%='No'%>
<%end%>
</p>

<p>
<strong>Description:</strong>
<pre><%= @textbook.description %></pre>
</p>

<p>
<% if !(@textbook.thumbnail_content_type =~ /^image/).nil? %>
<strong>Image:</strong>
<pre><a href="<%= @textbook.thumbnail.url %>"><%= image_tag @textbook.thumbnail.url(:medium) %></a></pre>
<%else%>
<!--<strong>No Image.</strong>-->
<%end%>
</p>

<p>
<strong>Created on:</strong>
<%= @textbook.created_at.strftime("%d %b. %Y") %>
</p>

<p>
<!--<%= link_to 'Contact', new_contact_path %>-->
<%= link_to 'Contact', new_contact_textbook_path(@textbook), class: 'btn btn-info' %>

</p>

<%if @textbook.user_email == current_user.email %>
<%= link_to 'Edit', edit_textbook_path(@textbook) %> |
<%= link_to 'Back to list', textbooks_path %>
<%else %>
<%= link_to 'Back to list', textbooks_path %>
<%end%>
</div>
</div>
</div>

如何添加点击按钮 back to search results如果仅当用户来自搜索结果时??

谢谢!

最佳答案

这就是我会做的。

1)找到当前路径并赋值给一个flash:

flashes 不仅用于消息,它们实际上是将临时数据发送到其他操作的最简单方法。所以在教科书 Controller 的搜索 Action 中:

flash[:last_search_path] = [the current path]

注意:[当前路径]不是ruby代码,稍后我们会看到如何找到它

2) 使用教科书显示 View 中的链接:

在教科书显示 View 中,您所要做的就是:

<% if flash[:last_search_path] %>
<%= link_to "back to search results", flash[:last_search_path] %>
<% end %>

但是......你如何找到[当前路径]?显然 [当前路径] 不是 ruby​​ 代码,因此您必须将其替换为其他内容。有多种方法可以找到当前路径或 url:查看 herehere

闪光 ?

Flash 对于传递临时数据非常有用,我强烈建议您阅读更多有关它们的内容。 Learn more about flashes here

在操作之间传递数据的其他解决方案

您可以使用 params 来传递该链接参数,但它会增加更多的复杂性。 read more about params here

您也可以使用 cookie,但这会将其保存到用户的浏览器中,并且仅当他来自搜索结果时才会起作用:read more about sessions here

关于html - 如何添加 "link_to ' 返回搜索结果'"feature Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805244/

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