【发布时间】:2012-10-10 16:55:08
【问题描述】:
我有我的模型课
class Location < ActiveRecord::Base
belongs_to :post
attr_accessor :address, :category,:name,:postcode,:tel
def initialize(result)
@address = result["address"]
@category = result["category"]
end
end
在我的控制器中,我通过两种方式创建 Location 对象
Location.new(result) #works fine
@post.location.new #get error
为什么在第二种情况下它寻找带有 2 个参数的构造函数。我还添加了带有两个参数的构造函数,但它不起作用。
我得到错误
wrong number of arguments (2 for 1)
编辑: 我如何使@post.location.new 工作?
【问题讨论】:
-
它正在寻找一个参数,而不是两个。你只给了一个,然后是两个。 “x for y”的意思是“在预期 y 的地方实际上有 x”。
-
@post.location.new 没有任何参数。我只想要一个空对象。
-
不提供参数时,您希望值是什么?
-
location = @post.build_location也会出错吗?
标签: ruby-on-rails ruby