2013-05-09 55 views
0

我有形式如何在param为空或空的情况下拒绝更新属性?

查看

<%= 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]) 
    ... 

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

+1

您是否在'User'模型上使用任何验证? – 2013-05-09 14:57:59

+0

在用户模型 – MrYoshiji 2013-05-09 14:58:24

回答

1

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

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

如果你想确保email是跨用户独特,使用Rails的验证,像这样:

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

你的方法将修改同一个电子邮件的现有用户中一个创造。听起来不对。

欲了解更多详情,看看脚手架控制器的create

+0

中验证:验证:first_name,presence:true,我将所有新字段保存在hstore数据列中。我希望能够覆盖现有的用户。 – tomekfranek 2013-05-09 15:23:28