Rails 应用程序 - 显示所有结果而不是特定结果的搜索操作
Rails app - Search action showing all results instead of specific results
我想在我的 rails 应用程序中搜索帖子。问题是当我搜索某些东西时,它会显示数据库中的所有帖子而不是特定结果。这是 posts_controller.rb
中的操作:
def search
@posts=Post.where('text LIKE ?', "%#{params[:text]}%")
end
这是 index.html.erb
中的搜索表单
<%=form_for(:post, :method=>'get', :url=>{:action=>'search', :html=> {:multipart=>true}}) do |f| %>
<p>
<%=f.text_field(:text)%>
<%=submit_tag("Search")%>
</p>
<%end%>
这是控制台显示的内容
Started GET "/posts/search?utf8=%E2%9C%93&post%5Btext%5D=ror&commit=Search" for 127.0.0.1 at 2015-12-18 17:48:07 +0500
Processing by PostsController#search as HTML
Parameters: {"utf8"=>"√", "post"=>{"text"=>"ror"}, "commit"=>"Search"}
Post Load (0.0ms) SELECT `posts`.* FROM `posts` WHERE (text LIKE '%%')
谁能解决这个问题?提前致谢。
P.S 我 运行 在 Rails 4.0.0
你做错了。 params[:text]
应该是 params[:post][:text]
def search
@posts=Post.where('text LIKE ?', "%#{params[:post][:text]}%")
end
我想在我的 rails 应用程序中搜索帖子。问题是当我搜索某些东西时,它会显示数据库中的所有帖子而不是特定结果。这是 posts_controller.rb
中的操作:
def search
@posts=Post.where('text LIKE ?', "%#{params[:text]}%")
end
这是 index.html.erb
<%=form_for(:post, :method=>'get', :url=>{:action=>'search', :html=> {:multipart=>true}}) do |f| %>
<p>
<%=f.text_field(:text)%>
<%=submit_tag("Search")%>
</p>
<%end%>
这是控制台显示的内容
Started GET "/posts/search?utf8=%E2%9C%93&post%5Btext%5D=ror&commit=Search" for 127.0.0.1 at 2015-12-18 17:48:07 +0500
Processing by PostsController#search as HTML
Parameters: {"utf8"=>"√", "post"=>{"text"=>"ror"}, "commit"=>"Search"}
Post Load (0.0ms) SELECT `posts`.* FROM `posts` WHERE (text LIKE '%%')
谁能解决这个问题?提前致谢。
P.S 我 运行 在 Rails 4.0.0
你做错了。 params[:text]
应该是 params[:post][:text]
def search
@posts=Post.where('text LIKE ?', "%#{params[:post][:text]}%")
end