English 中文(简体)
铁路和设计设计:将保存表格前的字段修改为 DB
原标题:Rails & Devise: modifying a field before saving form to DB

我的配置 :

设计

设计 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 
  .....
最佳回答

更改此行: 参数[:user][:corp_id] = company_id.downcase

此处:

更改参数无济于事,因为您已经使用先前的散列值创建了对象。

问题回答

暂无回答




相关问题
what is wrong with this mysql code

$db_user="root"; $db_host="localhost"; $db_password="root"; $db_name = "fayer"; $conn = mysqli_connect($db_host,$db_user,$db_password,$db_name) or die ("couldn t connect to server"); // perform query ...

Users asking for denormalized database

I am in the early stages of developing a database-driven system and the largest part of the system revolves around an inheritance type of relationship. There is a parent entity with about 10 columns ...

Easiest way to deal with sample data in Java web apps?

I m writing a Java web app in my free time to learn more about development. I m using the Stripes framework and eventually intend to use hibernate and MySQL For the moment, whilst creating the pages ...

join across databases with nhibernate

I am trying to join two tables that reside in two different databases. Every time, I try to join I get the following error: An association from the table xxx refers to an unmapped class. If the ...

How can I know if such value exists in database? (ADO.NET)

For example, I have a table, and there is a column named Tags . I want to know if value programming exists in this column. How can I do this in ADO.NET? I did this: OleDbCommand cmd = new ...

Convert date to string upon saving a doctrine record

I m trying to migrate one of my PHP projects to Doctrine. I ve never used it before so there are a few things I don t understand. In my current code, I have a class similar to this: class ...

热门标签