我的配置 :
设计
设计 Views expanded out
使用单独的登记控制器(将档案从查看/编辑/登记到查看/登记)
我在新的登记表格中有一个隐藏的字段,该字段应在表格提交后填充,但该数值没有保存到数据库中。
我这里有:
路线.rb:
devise_for :users, :controllers => { :registrations => registrations }, :path => , :path_names => { :sign_in => "login", :sign_up => "request_invite" }
在观点/承认/新观点/新观点/新看法中,我有公司_ID定义为隐藏字段
在模型/用户/rb中,我有:
attr_accessible: company_id
在注册控制器.rb, 我有:
class RegistrationsController < 设计::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 。 我验证了公司_ id 实际上正在创建中, 并且实际上被作为用户参数的一部分传递 。 在我计算公司_ id 之前, DB 的存款是否在某个地方出现? 我看到了一群 StackOverplow Q/ A 类似的话题, 但没有什么工作或适合我的努力。 Newbie在这里, 所以也许我并不熟悉所有要寻找的东西, 正如我想象的那样, 人们经常这样做 。
更新:
为确保质量/A完整,以下代码是正确的:
class RegistrationsController < 设计::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
.....