【发布时间】:2014-02-28 21:53:29
【问题描述】:
更新:
谢谢大家,继续:
def add_minor
if @user.minors.count <= 2
render :json => @user.profile.minors << Minor.find(params[:minor_id]), :status => 200
else
render :json => '', :status => 409
end
end
有没有更好的方法来处理这里 res 属性的分配以保持它可用于渲染调用?总的来说,我只是想知道如何改进这种非常臭的方法。
respond_to :json
def add_minor
res = ''
unless @user.minors.count > 2
minor = Minor.find(params[:minor_id])
res = @user.profile.minors << minor
status = 200
else
status = 409
end
render :json => res, :status => status
end
【问题讨论】:
-
这将是一个见仁见智的问题,但我不会在
res和status的这种简单情况下使用变量。我会颠倒逻辑并使用if(unless-else让我的大脑受伤)。所以if @user.minors.count <= 2后跟render :json => @user.profile.minors << minor, :status => 200和else就是render :json => '', :status => 409。我认为整个内容会更清晰,更易于阅读。
标签: ruby-on-rails activerecord active-model-serializers