将创建的值从一个模型分配给另一个模型

时间:2011-02-07 06:58:08

标签: ruby-on-rails ruby ruby-on-rails-3

@userc= User.create(:uname => params[:veliuname], :upass => params[:veliupass], :utype => 4, :isenabled=>true, :name=>params[:veliname], :surname => params[:velisurname], :mobiletel=>params[:velimobtel], :email=>params[:veliemail], :org_id => session[:user].org_id)

@pcurator = Pcurator.create(:user_id=>@userc.id , :address => params[:veliadrs], :city=>params[:velicity], :scity=>params[:veliscity], :othertel=>params[:velistatictel])

这里我尝试创建用户,然后为其分配配置文件。问题是创建用户后我试图将用户ID分配给pcurators user_id值。但它不起作用,并且pcurator在我的数据库中始终具有null作为user_id。

任何想法我怎么能做到这一点?或者是否有更好的Rails方式来做这些事情?

3 个答案:

答案 0 :(得分:1)

@userc尚未指向ActiveRecord记录。您可以尝试执行@userc.reload!来加载已保存的记录。无论如何,你可以轻松地完成这一切,而不是使用复杂的形式。 Hereherehere是相同的教程。

答案 1 :(得分:0)

除非对User模型进行任何验证,否则我发现您的代码没有任何问题,因此当您执行User.create(...)时,记录不会被保存。否则User.create(..)应该在db中创建一条记录,'userc'应该有一个id。

答案 2 :(得分:0)

来自铁轨和红宝石的另一个神奇时刻,它开始工作而没有任何变化。我开始讨厌这个开发环境