gpt4 book ai didi

ruby - 使用 ruby​​ 和 sinatra 为我的博客提供简单的搜索表单

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:10 25 4
gpt4 key购买 nike

我正在使用续集。在我的 app.rb 中,我写了

get '/search'  do
@post = Post.find(:Title => "%#{params[:query]}%")
erb :'layout'
end

布局.erb

<form action="/search" method="get">
<input type="text" name="query"/><br />
<input type="submit" />
</form>

<% if @results %>
<table>
<%@results.each do |r|%>
<tr valign="top">
<td><%=r.title%></td>
</tr>
<%end%>
</table>
<% end %>

还有课后的 blog_model.rb:

def self.search(query)
#where(:title, query) -> This would return an exact match of the query
where("title like ?", "%#{query}%")
end

我在/search 得到这个:LocalJumpError没有给出 block (产量)。那么该怎么办或我是否正确完成了这段代码?提前致谢。

最佳答案

我想问题出在 erb 文件的名称上,layout.erb

Sinatra 总是搜索一个 layout.erb,如果您没有明确指出其他布局文件,它将处理页面模板。该文件具有以下形式:

<!doctype html>
<html>
<head>
...
<body>
...
<%= yield %> insert the content here
...
</html>

有两种解决方法:

  1. 重命名 layout.erb 文件。
  2. 将 erb 调用替换为:erb :layout, layout: false

关于ruby - 使用 ruby​​ 和 sinatra 为我的博客提供简单的搜索表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20118432/

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