0

I have form

View

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

Controller#create

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

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

How to reject update user hstore date attribute if params(in that case first_name) is empty or blank?

4

1 回答 1

1

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

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

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

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

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

create有关更多详细信息,请查看脚手架控制器。

于 2013-05-09T14:58:44.370 回答