使用ruby和sinatra为我的博客提供简单的搜索表单
我在用续集。 在我的app.rb中,我写道使用ruby和sinatra为我的博客提供简单的搜索表单,ruby,search,sinatra,sequel,Ruby,Search,Sinatra,Sequel,我在用续集。 在我的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"
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 %>
我得到的是:LocalJumpError at/search
没有给出区块(产量)。
那么该怎么做,或者我是否正确地完成了这段代码?提前谢谢。我想问题是erb文件的名称layout.erb Sinatra始终搜索layout.erb,如果您没有明确指出其他版面文件,则该文件将处理页面模板。此文件的格式为:
<!doctype html>
<html>
<head>
...
<body>
...
<%= yield %> insert the content here
...
</html>
...
...
在此处插入内容
...
有两种解决方案:
erb:layout,layout:false
你能从日志中发布整个错误消息吗?此外,您还向我们展示了您在任何地方都没有使用的方法
search()
,您还使用了find()
,您应该在第一个代码段中使用where()
。
<!doctype html>
<html>
<head>
...
<body>
...
<%= yield %> insert the content here
...
</html>