【发布时间】:2011-04-27 09:26:42
【问题描述】:
在我们的 rails 应用程序中,我们有一个页面,在提交时我们将数据保存在 db 中。在此页面上,我们有一些动态生成的字段,我看到如果页面重新加载时出现验证错误,它不会使用发布时出现的值填充这些字段。
在控制器中,我们定义了以下方法来填充它:
def build_my_registration_type_memberships
@memberships = []
ListCache.my_registration_types.each do |my_registration_type|
@memberships << MyRegistrationTypeMembership.find_or_initialize_by_my_id_and_my_registration_type_id( @my.id, my_registration_type.id )
end end
在上述方法中,当我在编辑/查看模式下打开我的注册时,它使用此@membership 方法显示值。但是在发布错误的情况下,它不会用正确的信息重新加载它。所以我的问题是,如果发布错误,我该如何重新填充@membership?
感谢您的帮助。
【问题讨论】:
-
您能否发布保存对象的控制器方法或如果未保存则呈现错误
-
好的。这是控制器代码:
codedef new @my = My.new(params[:my]) @form_details = FormDetail.new(params[:form_detail]) end 当我的注册页面被访问时调用它。单击保存后,它会调用:codedef create if @my.save flash[:notice] = "'#{@my.name}' was successfully created." redirect_to :action => "index" else build_my_registration_type_memberships flash[:error] = "请填写所有必填字段" render :action => "new" end end
标签: ruby-on-rails ruby post dynamic field