这可以减少吗?

时间:2013-07-30 20:01:57

标签: ruby-on-rails ruby syntax dry

我想知道是否有一种很好的方法来干这个。

if session[:working_post].nil?
  @post = Post.new
else
  @post = Post.new(session[:working_post])
  session[:working_post] = nil
end

也许像

@post = Post.new(||= session[:working_post])

有类似的吗?

2 个答案:

答案 0 :(得分:5)

这会有用吗?

@post = Post.new(session.delete(:working_post) || {})

答案 1 :(得分:1)

如果session[:working_post]是哈希,你可以这样做:

@post = Post.new(session[:working_post] || {})