将数据从1个控制器插入2个表中

时间:2011-04-01 13:08:55

标签: ruby-on-rails

我有scaffold个字段name:string, active:boolean..

这种方式脚手架创建数据......

def create
    @question = Question.new(params[:question])
    render :json => @question.to_ext_json(:success => @question.save)
  end

一切都很好,但我想在创建问题时将一些数据插入另一个名为tokens的表中:

在我的令牌表中只有两个字段:token& is_active(boolean)

def create
    @w = "token"
    @question = Question.new(params[:question])
    @token = Token.new({:token => @w, :is_active=>"1"})
    render :json => @question.to_ext_json(:success => @question.save)
  end

这种方式不起作用。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

像...一样的东西。

def create
  @w = "token"
  @question = Question.new(params[:question])

  if success = @question.save
    @token = Token.new({:token => @w, :is_active=>"1"})
    @token.save
  end

  render :json => @question.to_ext_json(:success => success)
end

这假定在问题模型上进行了任何验证。你可以更进一步,使用一个交易,但在这种情况下,这似乎是不必要的复杂。