相关疑难解决方法(0)

在Rails 3中构建vs新

在Rails 3 文档中,build关联方法被描述为与new方法相同,但是自动分配外键.直接来自文档:

Firm#clients.build (similar to Client.new("firm_id" => id))
Run Code Online (Sandbox Code Playgroud)

我在其他地方读过类似的内容.

然而,当我使用new(例如,some_firm.clients.new不带任何参数),新的客户端的firm_id关联自动创建.我现在正在控制台中盯着结果!

我错过了什么吗?文档是否有点过时(不太可能)?build和之间有什么区别new

ruby-on-rails associations ruby-on-rails-3

123
推荐指数
3
解决办法
8万
查看次数

Ruby on Rails构建使id为nil

在我的项目中,用户拥有一家酒店,每家酒店都有与之相关的房型.简而言之,模型是

 class User < ActiveRecord::Base
     has_many :hotels

 class Hotel < ActiveRecord::Base
      belongs_to :user
      has_many :roomtypes

 class Roomtype < ActiveRecord::Base
    attr_accessible :maxguests, :name
    belongs_to :hotel
Run Code Online (Sandbox Code Playgroud)

如果我执行命令:

 @user = User.find(1)
 @user.hotels.find(1).roomtypes.build(name: "something", maxguests: "2")
Run Code Online (Sandbox Code Playgroud)

控制台返回:

    #<Roomtype id: nil, name: "something", maxguests: 2, created_at: nil, updated_at: nil, hotel_id: 1> 
Run Code Online (Sandbox Code Playgroud)

出于某种原因,Roomtype id和时间戳为零.有什么想法吗?

ruby-on-rails build

1
推荐指数
1
解决办法
2826
查看次数