내 구성 양식을 저장하기 전에 필드를 수정 : 별도의 등록 컨트롤러를 사용레일 및 고안은 : DB
을 확장 뷰를 고안
고안
을 (보기/궁리/등록에서 파일을 이동 보기/등록)
양식을 제출 한 후에 채워야하는 새 등록 양식에 숨겨진 필드가 있지만 값이 데이터베이스에 저장되지 않습니다. 여기
내가 가진 무엇 : routes.rb에서:
보기/regiistrations/새, 나는 숨겨진 필드로 정의 COMPANY_ID 한 모델에서/user.rb에서
devise_for :users, :controllers => { :registrations => 'registrations' }, :path => '', :path_names => { :sign_in => "login", :sign_up => "request_invite" }
나는 가지고있다 :
attr_accessible: company_id
registrations_controller.rb에서 나는 가지고있다 :
class RegistrationsController < Devise::RegistrationsController
........
def create
@user = User.new(params[:user])
company_id = params[:user][:company] + "_" + params[:user][:ssid]
params[:user][:company_id] = company_id.downcase
respond_to do |format|
if @user.save
flash[:notice] = "New user added"
format.html { redirect_to root_url }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
.....
양식의 내용은 DB에 저장되지만 company_id에는 저장되지 않습니다. company_id가 실제로 만들어지고 있는지 확인하고 실제로 사용자 매개 변수의 일부로 전달됩니다. DB에 저장이 company_id를 계산하기 전에 어딘가에서 발생 했습니까? 비슷한 주제에 대해 StackOverflow Q/A를 많이 보았지만 아무 것도 노력하지 않거나 적합하지 않았습니다. 초보자는 여기있을 것입니다. 그래서 사람들이 정기적으로하는 일이라고 상상해 봅니다.
UPDATE :
class RegistrationsController < Devise::RegistrationsController
........
def create
@user = User.new(params[:user])
company_id = params[:user][:company] + "_" + params[:user][:ssid]
@user.company_id = company_id.downcase
respond_to do |format|
if @user.save
flash[:notice] = "New user added"
format.html { redirect_to root_url }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
.....
물론 가능합니다. 그것은 효과가 있었다. 감사 – EastsideDeveloper