0

ユーザー名も電子メールにしたいのですが、ユーザーから値を2回取得したくないので、非表示フィールドとして保持し、以下に示すように試しましたが、値を取得しません

  <div><%= f.label :email %><br />
  <%= f.text_field :email %></div>

  <div><%= f.hidden_field :username :value => :email%></div>

では、どうすれば電子メールの値を取得し、同じ値をユーザー名フィールドにも入力できますか。私を助けてください。

4

1 に答える 1

2

それらを使用する前のコントローラーのようなparams[:user][:username] = params[:user][:email]ものが機能します...モデルに次のようなものを配置することをお勧めします。

before_validation(:on => :create) do
  self.username = self.email
end

または(モデル内でも):

def username
  email
end

しかし、まったく同じものへの2つの参照がある理由を自問するかもしれません。問題が複雑になっているようですが、ユーザー名を完全に失ってはどうでしょうか。

于 2012-11-09T04:27:52.283 に答える