Ruby on rails 如何在注册表单期间拒绝空白和空属性?
我有 型号Ruby on rails 如何在注册表单期间拒绝空白和空属性?,ruby-on-rails,rails-activerecord,hstore,Ruby On Rails,Rails Activerecord,Hstore,我有 型号 class User < ActiveRecord::Base attr_accessible :email validates :email, presence: true serialize :data, ActiveRecord::Coders::Hstore %w[zipcode first_name].each do |key| attr_accessible key define_method(key) do
class User < ActiveRecord::Base
attr_accessible :email
validates :email,
presence: true
serialize :data, ActiveRecord::Coders::Hstore
%w[zipcode first_name].each do |key|
attr_accessible key
define_method(key) do
data && data[key]
end
define_method("#{key}=") do |value|
self.data = (data || {}).merge(key => value)
end
end
end
class用户value)
结束
结束
结束
控制器
class UsersController < ApplicationController
def create
@user = User.find_or_initialize_by_email(params[:user][:email])
if @user.update_attributes(params[:user])
redirect_to :back, notice: "Thanks for sign up!"
else
render "pages/home"
end
end
end
class UsersController
通过客户端验证查看
<%= simple_form_for User.new, validate: true do |f| %>
<%= f.input :email %>
<%= f.input :first_name %>
<%= f.input :zipcode %>
<%= f.button :submit, 'Sign up' %>
<% end %>
第一个问题:我想更新现有的用户记录,但如果param是“
或”
,如何实现这一点
第二个问题:我是否应该使用create
操作来实现这一点?也许update
会更清晰。但是这个表单也创建了一个用户对象
第三个问题:是否有机会将
唯一性
验证添加到电子邮件属性?现在我的客户端验证不允许这样做。首先:要禁止使用空字符串更新字段,请将allow\u blank:false
设置为allow\u nil:false
。将这些添加到模型中的验证中
第二:不适用
第三:只需在模型中的电子邮件验证中添加唯一性:true
阅读更多内容但如果我希望存储在hstore data列中的所有属性都具有这种行为,该怎么办?您的原始帖子中没有这样的内容。我回答了你最初提出的问题。