新規ユーザーがサイトにサインアップすると、取引インデックスにリダイレクトされる必要があります。これは開発環境では正しく機能しますが、本番環境 (Heroku) では機能しません。実稼働環境では、ユーザー インデックス (存在しない) にリダイレクトされます。
これが私のユーザーコントローラーです:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if valid_email? @user.email
@user.save
redirect_to deals_path
else
flash[:error] = "Please enter a valid email address"
redirect_to root_path
end
end
private
def valid_email?(email)
valid_email_regex = /\A.+@.+\..+\z/i
email =~ valid_email_regex
end
end
ここにroutes.rbがあります:
root to: 'users#new'
resources :deals, only: [:index]
resources :users, only: [:new, :create]
以下は rake routes と RAILS_ENV=production rake routes の結果です (どちらも同じ):
root / users#new
deals GET /deals(.:format) deals#index
users POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
開発ではすべて正常に動作しますが、実稼働環境では、ユーザー コントローラーの「redirect_to deal_path」行が存在しないかのように動作します。
アプリは開発では SQLite を使用し、本番環境では PostgreSQL を使用していますが、それが関係している可能性がありますか?
アプリは Rails 3 にあり、Heroku でホストされています。