在我的控制器中有许多检查,如下所示:
if @profile.expired
redirect_to profile_path(@profile.id)
return
end
是否可以将其重构为单行?
Also if using this code it redirects to /profiles.28
其中 28 是 id 如何正确重定向到
/profiles/show/28 or profiles/28 ?
在我的控制器中有许多检查,如下所示:
if @profile.expired
redirect_to profile_path(@profile.id)
return
end
是否可以将其重构为单行?
Also if using this code it redirects to /profiles.28
其中 28 是 id 如何正确重定向到
/profiles/show/28 or profiles/28 ?
这很可能是您需要的:
redirect_to(profile_path(@profile.id)) if @profile.expired
您几乎从不(几乎从不,我的意思是实际上从不)return
在控制器代码中需要语句。如果你真的因为某种原因需要这个,你可以这样做
redirect_to(profile_path(@profile.id)) && return if @profile.expired
至于您的其他问题,我猜您在路线中错误地指定了某些内容,如果您发布它们,我很乐意更正它们。
我不完全清楚您想要实现的目标,但根据我的最佳猜测,您可以在一行中完成,如下所示:
(@profile.expired) ? (redirect_to profile_path(@profile.id) and return) : 'do something else'