【发布时间】:2010-12-27 12:57:54
【问题描述】:
我正在尝试构建一个用户注册页面,它将跨越三个页面并创建两条记录,一个用户对象和一个工单对象:
- 第一个(索引)只收集问题的一个摘要字段。
- 第二个 (signup_a) 收集问题的详细描述,自动填充先前的摘要,一些将进入工单对象的相关详细信息,以及将进入用户对象的名字/姓氏/电子邮件李>
- 第三个 (signup_b) 向用户对象添加更多详细信息,例如地址、城市、州等,但没有向工单对象添加更多详细信息,因此可以在此处关闭。
- 最后一页 (signup_c) 将所有用户/票证详细信息显示回客户端并在确认按钮后保存。
目前,我在单个控制器中有方法(代码简化,没有错误检查或响应):
def index # Collects summary
@ticket = Ticket.new
end
def signup_a # Basic Ticket Info/User name and email
@ticket = Ticket.new(params[:ticket])
@user = User.new
end
def signup_b # Address and other misc. pref's
@ticket = Ticket.new(params[:ticket])
@user = User.new(params[:user])
end
def signup_c #Display final results
@ticket = Ticket.new(params[:ticket])
@user = User.new(params[:user])
end
def submit_ticket #Saves info
@ticket = Ticket.new(params[:ticket])
@ticket.save!
@user = User.new(params[:user])
@user.save!
end
问题是......我不想在每一步都将信息保存到数据库中,只保存最后一步,但是在下一页中没有明确引用之前每一页的变量通过了。如何继续添加到 Ticket 和 User 对象,以便信息保留到我保存的最后一页! ?另外,当我执行@user.save!方法...我仍然可以调用实例中的各个属性还是执行保存!根据是否存储信息将对象转换为真/假值?
【问题讨论】:
标签: ruby-on-rails