有时,我们会向我们的潜在客户发送定制的注册链接。该链接包含可用于预先填写注册表单的参数。
http://www.example.com/users/sign_up?user[company_name]=Foo&user[region]=NA
我们的注册表有接受公司名称和地区的字段。可以根据注册链接预先填写。
这应该在实践中起作用,但这与registrations#new
操作的实施方式无关。新操作使用空哈希调用该 方法。build_resource
def new
resource = build_resource({})
respond_with resource
end
build_resource方法在输入非零时忽略。resource_params
def build_resource(hash=nil)
hash ||= resource_params || {}
self.resource = resource_class.new_with_session(hash, session)
end
我不得不覆盖new
注册控制器中的操作来克服这个问题。我不喜欢我的解决方案,因为它很脆弱。
def new
resource = build_resource
respond_with resource
end
是否有理由new
使用空哈希调用该操作?可以在没有空哈希的情况下调用它(就像在create
操作中一样)?