我有一个 RESTful 用户模型,并且当正在寻找的用户对象不是当前用户时,我试图过滤要包含在显示 JSON 响应中的属性。
逻辑:
if params[:id]==current_user
json => {:name: <name value>, :birthdate: <birthdate>}
else
json => {:name: <name value>}
end
当我在控制器中过滤属性时,我得到一个 MissingAttribuiteError 并带有以下代码:
用户控制器
def show
if params[:id]==current_user.id.to_s
@user=User.find(params[:id])
else
@user=User.find(params[:id], :select => [:name])
end
respond_with(@user)
end
用户/show.json.rabl
object @user
attributes :name, :birthdate
仅当对象中存在属性时,如何才能使 RABL 呈现属性?