铁轨显示空白页

时间:2013-07-25 12:30:53

标签: ruby-on-rails ruby

在我的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但是徒劳无功。任何人都很友好地帮助我解决问题,我正在努力摆脱长篇小说

1 个答案:

答案 0 :(得分:0)

在你的查询方法中,你编写了finder方法,但是你有写表名,而不是模型名,finders适用于Model name,这样写:

在您的查询方法中替换为:

@a=Coordinates.find("city=?", params[:show])

用这个:

@a=Coordinate.find("city=?", params[:show])

因为型号名称始终保持单一,除非您更改任何配置。 我认为,你的params [:show]存在问题。请粘贴'params [:show]'

的结果

希望它会有所帮助。感谢