2

条件はもっとうまく書けると思います:

def update
  if allow_update?
    if @company.update_attributes(params[:company])
      flash.now[:success] = "success message"
    else
      flash.now[:error] = "error message"
    end
  else
    flash.now[:error] = "error message"
  end

  render :show
end

これをどのように書き直せばよいでしょうか?

4

2 に答える 2

10

&&演算子を使用すると、2 つifの を 1 つにマージできます。

def update
  if allow_update? && @company.update_attributes(params[:company])
    flash.now[:success] = "success message"
  else
    flash.now[:error] = "error message"
  end

  render :show
end
于 2013-08-04T15:40:56.233 に答える
0

コードを短縮するために、いくつかの文字列補間と三項演算子を使用できます。

def update
  allow_update? && @company.update_attributes(params[:company]) ? result = "success" : 
  result = "error"
  flash.now[result.to_sym] = "#{result} messege"
  render :show
end
于 2013-08-05T08:39:02.833 に答える