什么是更惯用的Ruby写作方式?

nov*_*ova 4 ruby syntax idioms

  if params[:parent_type] == "Order"
    parent_id = nil
  else
    parent_id = params[:parent_id]
  end
Run Code Online (Sandbox Code Playgroud)

一个Ruby人会嘲笑我这样写吗?它看起来并不像我见过的一些Ruby代码那样简洁.

sep*_*p2k 9

这看起来非常合理.您可以在if(parent_id = if params...)前面移动赋值或使用三元组,但我认为结果看起来不会更好.

如果parent_id在该行之前为nil或未定义,则可以简单地写:

parent_id = params[:parent_id] unless params[:parent_type] == "Order"
Run Code Online (Sandbox Code Playgroud)


Tho*_*ith 7

它没有什么问题,但可以更简洁:

parent_id = (params[:parent_type] == "Order") ? nil : params[:parent_id]
Run Code Online (Sandbox Code Playgroud)

或者:

parent_id = if (params[:parent_type] == "Order")
    nil
else
    params[:parent_id]
end
Run Code Online (Sandbox Code Playgroud)

  • 那里有一个错字.">"应该是"?" (2认同)

Chr*_*nch 5

我认为它的方式很好.我是一个红宝石的人,我不会因为这样的方式而嘲笑你.很清楚代码的作用是什么,并且没有真正的代码重复,所以我不担心它.