나는이sign_up 양식 중에 빈 속성 및 빈 속성을 거부하는 방법은 무엇입니까?
모델
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 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
클라이언트 측 유효성 검사와보기
<%= 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
이 더 명확 할 것입니다. 그러나이 양식은 또한 사용자 객체를 만듭니다.
세 번째 질문 : 전자 메일 속성에 uniqueness
유효성 검사를 추가 할 수 있습니까? 지금 당장은 클라이언트 쪽에서 유효성 검사가 허용되지 않습니다.
하지만 난 hstore 데이터 컬럼에 저장된 모든 속성이 동작을 원한다면? – tomekfranek
원래 게시물에없는 내용입니다. 나는 당신이 처음에 제시 한 질문들에 답했다. – Tomanow