编写这个if子句的更好/更清晰的方式

Joe*_*nas 1 ruby refactoring ruby-on-rails ruby-on-rails-3

以下是我的UsersController操作代码.我有一个current_user会话对象,如果没有传递给动作,我想使用当前用户的ID.

def show
  id = params[:id]
  id = current_user.id if id.blank?
  @user = User.find(id)
end
Run Code Online (Sandbox Code Playgroud)

我这样做是为了最终我可以拥有可以编辑其他用户信息的管理员.这就是我不使用的原因@user = User.find(current_user.id).

思考/建议吗?我可能也可以做一个三元运算符

params[:id].present? ? id = params[:id] : id = current_user.id
Run Code Online (Sandbox Code Playgroud)

但我认为可能还有更好的方法.

San*_*osh 7

我更喜欢这种方式

def show
  @user = User.find(params[:id] || current_user.id)
end
Run Code Online (Sandbox Code Playgroud)