ggaoggのプロフィール
- ベストアンサー数
- 38
- ベストアンサー率
- 43%
- お礼率
- 86%
- 登録日2005/02/26
- Railsにおける逆引きの無効
ruby1.8.6 & rails2.3.4 & Win2003環境下でrailsアプリを作っています。 ある程度作りこんで ruby script/server で起動したところローカル(サーバ上)だと画面表示は速いのに別のPC(クライアント)から接続すると時間がかかります。いろいろ調べたところ、どうやらサーバがクライアントのPCの名前解決をしようとしているようです。いわゆるIPからの逆引きをしようとしてタイムアウトまで待ってから画面を表示している模様。そこでサーバ側のhostsにクライアントPCのhostsを書けば早くなりました。しかしこれだと不特定PC向けにWEBサーバを公開できないので、この逆引きを無効にさせたいとおもっていますが、やり方がわかりません。どこのファイルにどんなふうに書けばよいのでしょうか? デフォルトだとサーバはwebrickなのでwebrick::genericserverにある DoNotReverseLookupあたりを書けばよいのかもしれませんが、どのファイルにどんな風に書くのかわかりませんし、そもそもこの考え方が間違っているかもしれません。 どなたかわかる方いないでしょうか?
- リダイレクトでPOSTリクエストを復元する方法
【行いたいこと】 RailsでRESTフルなリソースを扱うアプリを開発しています。 アプリはユーザ認証機能を備えており、 RESTフルなリソースの操作(作成や削除など)はログインしたユーザだけが行えます。 ログインしていないユーザがこれらの操作をおこなうリクエストを送ってきた場合には、 認証ページに遷移させ、ユーザがログインした直後に、 ユーザ操作なしで当初のアクセスに対する操作処理を行いたいです。 【もくろみ】 ログインしたユーザだけが行える操作へのアクセスは、 フィルタ(before_filter)を使いインターセプトし、 ログインしていないユーザの場合には認証ページにリダイレクトします。 インターセプタ時点でリクエスト情報をセッションに格納しておき、 ログイン後にセッションからリクエスト情報を取り出し、 その情報を使ってリダイレクトすれば良いと考えました。 【問題点】 GETリクエスト(GETメソッドでのHttpリクエスト)をインターセプタした場合は上手くいきましたが、 POSTリクエストではリクエストを復元できません。 GETメソッドのリクエストになってしまいます。 リダイレクト(redirect_to)はブラウザにGETリクエストしか要求できないためです。 何か解決策はありますでしょうか。 よろしくお願いします。
- Rubyのパスワード変更画面について
rubyでのプログラム作成についての質問です。 パスワードの変更画面を作成したいのですが、作り方がよくわかりません。 会社でrubyを使用したプログラム作成を命じられましたが、社内にrubyを使用できる人がいないので質問できず困っています。 パスワードを変更する際に、パスワードの入力と確認用パスワードの入力をして、 双方が一致したらパスワードを変更、双方が不一致ならエラーメッセージを表示するようにしたいのですが、どうしたらいいのでしょうか。 現在、コントローラ内は以下のようになっています。 def new @user = User.new respond_to do |format| format.html # new.html.erb format.xml { render :xml => @user } end end def create @user = User.new(params[:user]) if(params[:password]!=params[:password_confirm]) ←ここでパスワードと確認用パスワードをチェック? flash[:notice] = 'パスワードが間違っています。' redirect_to:back return end respond_to do |format| if @user.save flash[:notice] = 'User was successfully created.' format.html { redirect_to(@user) } format.xml { render :xml => @user, :status => :created, :location => @user } else format.html { render :action => "new" } format.xml { render :xml => @user.errors, :status => :unprocessable_entity } end end end パスワードチェックをしているつもりはあるのですが、パスワードと確認用パスワードが違っていても現在は登録処理がされてしまいます。どうしたらいいのでしょうか。 大変困っているのでどなたか教えてください。
- リダイレクトでPOSTリクエストを復元する方法
【行いたいこと】 RailsでRESTフルなリソースを扱うアプリを開発しています。 アプリはユーザ認証機能を備えており、 RESTフルなリソースの操作(作成や削除など)はログインしたユーザだけが行えます。 ログインしていないユーザがこれらの操作をおこなうリクエストを送ってきた場合には、 認証ページに遷移させ、ユーザがログインした直後に、 ユーザ操作なしで当初のアクセスに対する操作処理を行いたいです。 【もくろみ】 ログインしたユーザだけが行える操作へのアクセスは、 フィルタ(before_filter)を使いインターセプトし、 ログインしていないユーザの場合には認証ページにリダイレクトします。 インターセプタ時点でリクエスト情報をセッションに格納しておき、 ログイン後にセッションからリクエスト情報を取り出し、 その情報を使ってリダイレクトすれば良いと考えました。 【問題点】 GETリクエスト(GETメソッドでのHttpリクエスト)をインターセプタした場合は上手くいきましたが、 POSTリクエストではリクエストを復元できません。 GETメソッドのリクエストになってしまいます。 リダイレクト(redirect_to)はブラウザにGETリクエストしか要求できないためです。 何か解決策はありますでしょうか。 よろしくお願いします。
- gem install railsで「NameError」
gemでrailsを指定ディレクトリにインストールをしようとしているのですが、railsのインストールでエラーが出てしまいます。 rubyはもともと入っており、管理者権限などが無いため、 rubygemsを指定ディレクトリ以下にいれgemコマンドで ←gem install rails --include-dependencies を投入したところ、 →ERROR: While executing gem ... (NameError) uninitialized constant Digest::MD5 のエラーが表示されてしまいます。 gem -vなど、正常に実行されるコマンドもあります。 原因などわかる方がいらっしゃれば、教えていただきたいです。 ・バージョン、場所 rubygems:1.3.1 指定ディレクトリ/rubygems ruby:1.8.7 /usr/local/lib/ruby