Xのランダムなユーザ名とパスワードを作成する基本的なユーザ名/パスワードジェネレータを作成しました。私はthisポストを基準に使用しました。それはコンソールでうまく動作しますが、私はそれを自分のRoR3.1アプリケーションで正しく動作させる方法を理解していません。Rubyの反復をRails3のコントローラ/モデルに移動するには
私は、次の変数Iが入力でき、簡単なフォームを作成する必要があり:
- 反復回数(X)は、パスワードのユーザ名の
- 長さ(Y)
- 長さ(Z)を必要とします
次に、保存をクリックすると、Xユーザー名とパスワードを作成してdbに保存するアプリケーションが必要になります。
私はページロード時にアクションを呼び出すことによって動作させることができましたが、変数を渡すフォームを作成する方法はわかりません。
私は私のユーザモデルでこれを作成しました:
def new_batch
@user = User.new
respond_to do |format|
if @user.save
@user = User.generate_batch
else
format.html { render action: "new_batch" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
そして、私のルートで:
get "/batch" => "users#new_batch"
class User < ActiveRecord::Base
private
def self.generate_batch
10.times do
username = ""
password =""
5.times { username << (i = Kernel.rand(62); i += ((i < 10) ? 48 : ((i < 36) ? 55 : 61))).chr }
5.times { password << (i = Kernel.rand(62); i += ((i < 10) ? 48 : ((i < 36) ? 55 : 61))).chr }
User.create!(:username => username, :check_attributes => [ {:attribute_name => "User-Password", :value => password, :op => ":="}])
end
end
end
を私のユーザーのコントローラでは、私は、新しいアクションを作成しました
空白のフォームから始めて、少なくとも変数がハードコードされているかどうかを確認することができました:
= simple_form_for @user do |f|
= f.submit
私はそれが私の代わりにバッチを生成するので、アクションを作成を使用しようとするように見える、提出ヒット...
私が行うには何が必要です:
- ゲット適切
- は事前で
おかげで上記のような変数を入力し提出するためのフォーム
- UPDATE - 以下のアドバイスに従い
、私は2つのコントローラを作成しました:
routes.rbを今、これを持っている:
get "/batch" => 'users#new_batch'
put "/batch" => 'users#new_batch_create'
そして、このようなコントローラ:
def new_batch
end
def new_batch_create
@user = User.generate_batch
end
私が提出すると、ループを介して処理されます:
フォームから変数を渡す方法がまだ分かりません...
を使用して独自のフォームを作成しますオフ。そのフォームの作成と処理のためにフォームの生成を分ける必要があります。 –