我的配置之前修改的字段:導軌&設計:保存形式DB
設計
設計膨脹出
使用單獨的註冊記憶控制器視圖(從視圖/設計/註冊移動的文件以查看/註冊)
我有一個隱藏的字段在應該在提交表單後填寫的新註冊表單中,但該值未被保存到數據庫中。
這是我有:
在routes.rb中:
devise_for :users, :controllers => { :registrations => 'registrations' }, :path => '', :path_names => { :sign_in => "login", :sign_up => "request_invite" }
在視圖/ regiistrations /新的,我已經COMPANY_ID定義爲隱藏字段
在模型/ user.rb ,我有:
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
.....
表單的內容保存到數據庫,但不保存到company_id。我驗證了company_id實際上是被創建的,並且實際上是作爲用戶參數的一部分傳遞的。在計算company_id之前,保存到數據庫是否發生在某處?我看到了一堆關於類似主題的StackOverflow Q/A,但是沒有任何工作或者符合我想要做的。新手在這裏,所以也許我不熟悉所有需要尋找的東西,因爲我認爲這是人們定期做的事情。
UPDATE:
要確保Q/A完成後,下面是正確的代碼:
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