如何在Rails中建立父母的孩子只有一次
问题描述:
如何确保父母只在Rails中建立其子女n次?如何在Rails中建立父母的孩子只有一次
有没有办法找到非持久实例?
我目前有一个问题,我在第一次加载页面时创建了子项。当用户刷新页面时,子项不会被加载,因为它们已被创建,但尚未被保存。
关于如何解决这个问题的任何想法?
在视图:
if (session[:members_built] == false)
@membership.build_members
session[:members_built] = true
end
...
<% f.fields_for :members do |ff| %>
<%= render :partial => "member", :locals => { :ff => ff } %>
在模型:
def build_members
(membership_type.adults - 1).times {members.build}
end
答
if (session[:members_built] == false)
@membership.build_members
session[:members_built] = true
end
我建议没有这样的代码是你的意见。这违背了MVC的原则。所以把它移到控制器中。还可以结帐Rails Guides for associations。
所以你可以做这样的事情
@membership.build_members
在控制器
。您不必使用会话变量来记住您是否调用了#build_members因为使用#build不保存该对象。所以当用户刷新页面时,控制器会再次调用#build_members,并且你的视图应该是你想要的。
显示一些代码。 – 2010-12-06 12:42:35
添加代码,如果我错过了其他任何相关内容,请让我知道 – amaseuk 2010-12-06 12:56:20