下面是轨道生成的代码:RoR:如何修改控制器以仅接受更新几个参数?
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
flash[:notice] = 'User was successfully updated.'
format.html { redirect_to(@user) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
但我不希望用户更新整个用户,假设我的用户有FNAME,LNAME和性别,而不是从视图中删除性别,我想限制更新方法只接受fname和lname,如果他/她想更新性别,我不会允许他/她这样做。我如何限制用户这样做?谢谢。
您确定要在控制器/模型级别使用此功能吗?根据我自己的经验,我会尝试使用JavaScript或使用多种形式(一种用于性别更新,一种用于名称更新,两种都使用相同/更新)来防止这种情况 - 特别是如果您希望提供可靠的XML API作为好。 “你不能同时改变你的名字和性别”在API文档中阅读真的很奇怪。 – 2010-07-12 12:01:41