エラーが発生した場合にインデックスページを再レンダリングするのに問題があります。 2つのフィールドが空白の場合、ウェルカム/インデックスを表示する必要があります。Railsでエラーチェックを処理した後にインデックスページをレンダリングする際に問題が発生しました
def index
if params[:cityzip] == "" && params[:searchname] == ""
p "***************"
@error = "You must enter a location"
p "***************"
render'welcome/index.html.erb'
elsif params[:searchname] != ""
@providers = Provider.searchname(params[:searchname].capitalize)
elsif params[:cityzip] != "" && params[:insurance][0] == "---"
@providers = Provider.search(params[:cityzip])
elsif params[:cityzip] != "" && params[:insurance][0] != ""
@providers = Provider.search(params[:cityzip]).insurancesearch(params[:insurance][0].upcase)
end
@searchname = params[:searchname]
@search = params[:cityzip]
@insurancesearch = params[:insurance]
@locations = []
@filters = []
if params[:searchname] != ""
@filters << params[:searchname]
end
if params[:insurance][0] != ""
@filters << params[:insurance][0]
end
def latlon(city)
url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' + city + '&key=AIzaSyC_VdOLBtVFbR-6rRP5-hRFXChHa78bDmM'
citylatlon =[]
city = open(url).read
city = JSON.parse(city)
city["results"][0]["geometry"]["location"]
end
@providers = @providers.order("lastname")
@providers = @providers.order('distance asc').paginate(:per_page => 30, :page => params[:page])
end
インデックスページは、「ビュー」フォルダの「ウェルカム」フォルダにあります。コードはProvidersコントローラにあります。私は、インデックスメソッドを持っているウェルカムもコントローラを持っています。その後何が無関係である必要がありますので、それはコントローラのさらに下に行くとき
Started GET "/providers?utf8=%E2%9C%93&insurance%5B%5D=AETNA&cityzip=&searchname=" for ::1 at 2017-06-10 12:06:04 -0500
Processing by ProvidersController#index as HTML
Parameters: {"utf8"=>"✓", "insurance"=>["AETNA"], "cityzip"=>"", "searchname"=>""}
Geokit is using the domain: localhost
Rendering welcome/index.html.erb within layouts/application
Rendered welcome/index.html.erb within layouts/application (3.4ms)
Completed 500 Internal Server Error in 23ms (Views: 20.1ms | ActiveRecord: 0.0ms)`
NoMethodError (undefined method 'order' for nil:NilClass):`
app/controllers/providers_controller.rb:36:in 'index'
Rendering /Users/dragunfly/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
Rendering /Users/dragunfly/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
Rendered /Users/dragunfly/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (5.7ms)
Rendering /Users/dragunfly/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
Rendered /Users/dragunfly/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.5ms)
Rendering /Users/dragunfly/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb`
Rendered /Users/dragunfly/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.5ms)
Rendered /Users/dragunfly/.rvm/gems/ruby-2.4.1/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (139.2ms)
NoMethodError (undefined method 'order' for nil:NilClass):
このエラーが起こる:これは私が取得していますエラーです。私は最初のページをロードする際
<!DOCTYPE html>
<html>
<head>
<title>Referralgps</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<nav class="navbar navbar-inverse nobottommargin ">
<div class="container">
<a href="/welcome/index" ><img src="/images/referral_gps_logo.png"></a>
</div>
</nav>
<%= yield %>
<footer class="visible-lg-*">
<img src="/images/footlogo.png">
</footer>
</body>
</html>
それは正常に動作します:
layouts/application
は、次のようになりますページのレイアウトです。しかし、エラーのためにレンダリングしようとすると動作しません。
完全エラースタックトレースで質問を更新してください – Pavan
「これは私が得ているエラーです...」 - エラーはどこですか? –
23msで内部サーバエラー500(ビュー:20.1ms | ActiveRecord:0.0ms)ページをレンダリングするのではなく、コントローラの残りの部分を実行しようとしています。 – almusavi