我有一个RESTful User模型,并且当正在搜索的User对象不是当前用户时,我试图过滤要包含在Show JSON响应中的属性。
逻辑:
if params[:id]==current_user
json => {:name: <name value>, :birthdate: <birthdate>}
else
json => {:name: <name value>}
end
当我在控制器中过滤属性时,我得到一个MissingAttribuiteError,其中包含以下代码:
UsersController
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仅在对象中存在属性时才能使其呈现?
答案 0 :(得分:0)
显然容易的事情应该很容易。这很有效。
[不确定视图级别的过滤是否比在控制器中过滤更好或更差。]
UsersController
def show
@user=User.find(params[:id])
respond_with(@user)
end
用户/ show.json.rabl
if @user==current_user
attributes :birthdate
end