在我的rails应用程序中,我需要实现一个条件搜索表单。有两个表名为推文和坐标,但输出显示一个空白页面,我被困扰了dis。 我的coordinates_controller
class CoordinatesController < ApplicationController
def home
end
# def paramas(b)
#
# @b = params[:show]
# return @b
end
#def coor(latitude,longitude)
# @latitude=0
#@longitude=0
#end
def query
@a=Coordinates.find("city=?", params[:show])
if(params[:show]= a.city) then
latitude= a.latitude
longitude=a.longitude
end
if(latitude=0 && longitude=0) then
return sql="Select * from tweets where tweet_text LIKE '%text%' AND user_loc LIKE 'params[:show]' order by id desc"
else if (latitude!=0 && longitude!=0)
min_lat = latitude - 1.0
max_lat = latitude + 1.0
min_lng = longitude - 1.0
max_lng = longitude + 1.0
return sql = "Select * from tweets where tweet_text LIKE '%text%' AND ( ((longitude BETWEEN min_lng and max_lng) AND (latitude BETWEEN min_lat and max_lat)) OR (user_loc LIKE 'params[:show]') ) order by id desc"
else
return sql="Select * from tweets where tweet_text LIKE '%text%'"
end
end
end
我的Tweets_controller class TweetsController&lt; ApplicationController中
include CoordinatesHelper
def search
render 'tweets/search'
end
def index
# include CoordinatesHelper
sql=query
@tweets=Tweets.paginate_by_sql(sql, :page => @page, :per_page => @per_page )
#render 'tweets/index'
end
end
我的搜索按钮的查看代码
<%=form_tag({controller: 'tweets', action:'index'}, method: "get") do %>
<%=label_tag(:search, "Search for:") %>
<%=text_field_tag(:text) %>
<%=label_tag(:show, "Show for:") %>
<%=text_field_tag(:show) %>
<%= submit_tag( "GO" ) %>
<% end %>
我的观看代码显示结果
<%= will_paginate @tweets %>
<% @tweets.each do |tweets| %>
<ul>
<li><%= tweets.id %></li>
<li><%= tweets.tweet_created_at %></li>
<li><%= tweets.tweet_source %></li>
<li><%= tweets.tweet_text %></li>
<li><%= tweets.user_id %></li>
<li><%= tweets.user_name %></li>
<li><%= tweets.user_sc_name %></li>
<li><%= tweets.user_loc %></li>
<li><%= tweets.user_img %></li>
<li><%= tweets.longitude %></li>
<li><%= tweets.latitude %></li>
<li><%= tweets.place %></li>
<li><%= tweets.country %></li>
</ul>
<% end %>
但由于某些原因,输出显示一个空页尝试编辑几个tymes但是徒劳无功。任何人都很友好地帮助我解决问题,我正在努力摆脱长篇小说
答案 0 :(得分:0)
在你的查询方法中,你编写了finder方法,但是你有写表名,而不是模型名,finders适用于Model name,这样写:
在您的查询方法中替换为:
@a=Coordinates.find("city=?", params[:show])
用这个:
@a=Coordinate.find("city=?", params[:show])
因为型号名称始终保持单一,除非您更改任何配置。 我认为,你的params [:show]存在问题。请粘贴'params [:show]'
的结果希望它会有所帮助。感谢