0

私はこれを理解しようとして気が狂っています:

メインのデバイス登録コントローラーを回避する登録モジュールがあり、User.new(...) を使用して、Devise で生成されたユーザー モデルを手動でインスタンス化する必要があります。Form_tag を使用して、User.new() に必要なすべてのパラメーターを送信しています。これが私のコードの切り詰められたバージョンです:

def registration_three

  @user = User.new(:email => params[:email], :password => params[:password], :password_confirmation => params[:password_confirmation])
  @user.save

  @user = User.new(:email => 'patlopez@yahoo.com', :password => 'qwertyui', :password_confirmation => 'qwertyui')
  @user.save

end

2 番目の @user.save は機能しますが、最初の @user.save は機能しません。stdout の print ステートメントによると、params[:email]、params[:password]、および params[:password_confirmation] は確かに存在します。

誰にもアイデアはありますか?

編集:だから私は 2 番目の User.new(...) のすべての一重引用符文字列を、params ハッシュに格納されているような二重引用符文字列に変更しようとしました...そして 2 番目のインスタンス化も失敗しました。したがって、問題には二重引用符と単一引用符の文字列が関係していると確信しています。二重引用符文字列を単一引用符文字列に変換する方法を知っている人はいますか? 前もって感謝します。

4

1 に答える 1

0

最初にパラメータを変数に保存してから、引用エラーを回避するためにクエリで使用してください

于 2012-10-17T10:26:46.447 に答える