ユーザーモデルを持つRuby on Rails 3.2アプリケーションを設計しました。別のモバイル アプリケーションを介して userName とパスワードを認証するために、カスタム関数を作成しました。すべてが localhost で正常に動作しており、モバイル アプリケーションから認証できます。そこで、さらに一歩進んで Heroku にデプロイしました。現在、認証機能は機能していません。
私のGemファイルには、次のものを含めました。
group :production do
gem 'pg'
end
group :development do
gem 'sqlite3'
end
users_controller.rbで、カスタム認証関数を作成しました。
# http://wgo-ror.herokuapp.com/users/authenticate?userName=ramy&password=123456
def authenticate
usr = params[:userName]
pwd = params[:password]
@getUser = User.where("userName = ? AND password = ?", params[:userName], params[:password])
if (@getUser!=[])
respond_to do |format|
format.html { render :json => {:Success => true, :Data => @getUser}, :callback => params[:callback] }
format.json { render :json => {:Success => true, :Data => @getUser}, :callback => params[:callback] }
end
else
respond_to do |format|
format.html { render :json => {:Success => false, :Data => @getUser}, :callback => params[:callback] }
format.json { render :json => {:Success => false, :Data => @getUser}, :callback => params[:callback] }
end
end
end
saveUserという別のカスタム関数も作成しました。この特定の機能は、 herokuにデプロイした後でも正常に動作しています。
# http://wgo-ror.herokuapp.com/users/saveUser?id=1&userName=yrkapil&password=123456&email=yrkapil@gmail.com
def saveUser
@user = User.find(params[:id])
@user.update_attributes(:userName => params[:userName], :password => params[:password], :email => params[:email] )
end
私のroutes.rbには、次のものを含めました。
match 'users/authenticate' => 'users#authenticate', :as => :authenticate
match 'users/saveUser' => 'users#saveUser', :as => :saveUser
resources :users
resources :festivals
root :to => 'users#index'
何か足りないのですか、それともpostgresqlのせいですか? 私はそれを行う方法の手がかりを得ていません。みんな助けてください。私は本当にこれを機能させる必要があります。前もって感謝します!