つうか、ね?
コード書いてるより、ブログかいてる方が、時間がかかってる気がするんだけどwww
まあ、いいやwwwwww
今回は、
- 姓とミドルネームと名を連結したものを「本名」として扱う
- 姓とミドルネームと名のvalidation
- app/views/users/newとshowのブラッシュ・アップ
な感じで。
diff。
app/models/user.rb+ validates_presence_of :family_name+ validates_format_of :family_name, :with => Authentication.name_regex, :message => :bad_name_message, :allow_nil => true+ validates_length_of :family_name, :maximum => 100++ validates_format_of :middle_name, :with => Authentication.name_regex, :message => :bad_name_message, :allow_nil => true+ validates_length_of :middle_name, :maximum => 100++ validates_presence_of :given_name+ validates_format_of :given_name, :with => Authentication.name_regex, :message => :bad_name_message, :allow_nil => true+ validates_length_of :given_name, :maximum => 100- attr_accessible :email, :nickname, :password, :password_confirmation+ attr_accessible :email, :nickname, :family_name, :middle_name, :given_name, :password, :password_confirmation+ def real_name+ name = family_name + " "+ name += "\"#{middle_name}\" " unless middle_name.nil?+ name += given_name+ name+ endprotected
app/views/layouts/application.html.erb<% form_for :user, :url => users_path do |f| -%>+<dl class="account">+ <%= content_tag("dt", label_tag('email', t('actionview.label.common.email'))) %>+ <%= content_tag("dd", f.text_field(:email)) %>+ <%= content_tag("dt", label_tag('password', t('actionview.label.common.password'))) %>+ <%= content_tag("dd", f.text_field(:password)) %>+ <%= content_tag("dt", label_tag('password_confirmation', t('actionview.label.common.password_confirmation'))) %>+ <%= content_tag("dd", f.text_field(:password_confirmation)) %>+</dl>-<p><%= label_tag 'nickname', t('actionview.label.common.nickname') %><br />-<%= f.text_field 'nickname' %></p>+<dl class="profile">+ <%= content_tag("dt", label_tag('nickname', t('actionview.label.common.nickname'))) %>+ <%= content_tag("dd", f.text_field(:nickname)) %>+ <%= content_tag("dt", t('actionview.label.common.real_name')) %>+ <dd>+ <dd>+ <%= content_tag("dt", label_tag('family_name', t('actionview.label.common.family_name'))) %>+ <%= content_tag("dd", f.text_field(:family_name)) %>+ <%= content_tag("dt", label_tag('middle_name', t('actionview.label.common.middle_name'))) %>+ <%= content_tag("dd", f.text_field(:middle_name)) %>+ <%= content_tag("dt", label_tag('given_name', t('actionview.label.common.given_name'))) %>+ <%= content_tag("dd", f.text_field(:given_name)) %>+ </dd>+ </dd>+</dl>-<p><%= label_tag 'email', t('actionview.label.common.email') %><br/>-<%= f.text_field :email %></p>--<p><%= label_tag 'passoword', t('actionview.label.common.password') %><br/>-<%= f.password_field :password %></p>--<p><%= label_tag 'password_confirmation', t('actionview.label.common.password_confirmation') %><br/>-<%= f.password_field :password_confirmation %></p>-<p><%= submit_tag t('actionview.submit.user.signup') %></p><% end -%>
app/views/users/show.html.erb+<dl>+ <%= content_tag("dt", t('actionview.label.common.nickname'), :class => "nickname") %>+ <%= content_tag("dd", @user.nickname) %>+ <%= content_tag("dt", t('actionview.label.common.real_name'), :class => "real_name") %>+ <%= content_tag("dd", @user.real_name) %>+</dl>
こんな感じか?
real_nameメソッドは、実は、www.railscast.comのRefactoring User Name Part 1を参考にして作ったんだけど、でも、これ、modelでやるよりも、helperで、user.idを基にして、フルネーム作った方がいいような気がしないか?
まあ、ヨシとしよう;-p
困った時は、その時考えよう。
0 件のコメント:
コメントを投稿