【发布时间】:2012-05-05 05:21:31
【问题描述】:
我有大约 60 个字段的单一形式的用户属性,通过在一个页面上切换隐藏的 div 来单独显示。更新其他人的个人资料时,所有字段都会按预期更新。更新当前登录的配置文件 (current_user) 时,只有大约 40 个字段会更新。以下是我对 current_user 配置文件更新方法的观察:
当直接在@user = User.find(params[:id]) 之后设置断点并查看传递的参数时,60 个表单字段参数中甚至只有大约 40 个存在。存在的会按预期更新,显然不存在的不会更新。
关于可能导致这种奇怪行为的任何线索?
示例:users/_form.erb 上许多行为不端的表单字段之一
<%= f.text_field :street_address, :placeholder => 'address..' %>
users_controller.rb 中的更新方法
# UPDATE
def update
@user = User.find(params[:id])
breakpoint_set = on_this_line
respond_to do |format|
if @user.update_attributes params[:user]
format.html do
redirect_to("/users", :notice => 'User Profile was successfully updated.')
format.xml { head :ok }
end
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
【问题讨论】:
-
这是您的示例代码中的一种类型吗?
-
那是一个错字,我把它改成了 f。但不幸的是,这不是问题。
-
其他我尝试无济于事的事情是在所有字段上使用 attr_accessible 并重新启动服务器。我有点没主意了。
-
每次执行此操作时结果是否保持不变?也就是说,正确更新的属性下次不会更新了吗?我想看看行为是否一致。
-
是的,所有行为不端的字段都是一致的,每次都是相同的。那些有效的,总是有效的。
标签: ruby-on-rails ruby