如果param为空或空,如何拒绝更新属性?

时间:2013-05-09 14:52:23

标签: ruby-on-rails ruby ruby-on-rails-3 hstore

我有表格

查看

<%= simple_form_for User.new do |f| %>
   <%= f.input :email %>
   <%= text_field_tag "user[data[first_name]]" %>
   <%= f.button :submit %>
<% end %>

控制器#创建

@user = User.find_or_initialize_by_email(params[:user][:email])

if @user.update_attributes(params[:user])
  ...

如果params(在这种情况下为date)为空或空白,如何拒绝更新用户hstore first_name属性?

1 个答案:

答案 0 :(得分:1)

在我看来,你对create行动采取了错误的策略。只是做

@user = User.new(params[:user])
@user.save

如果您想确保用户之间的email 唯一,请使用Rails的验证,如下所示:

class User
  #...
  validates_uniqueness_of :email
  #...
end

您的方法将在创建期间使用相同的电子邮件修改现有用户。听起来不错。

有关详细信息,请查看 scaffolded 控制器的create