如何为更多DRY控制器重构此代码?
@places = Place
@places = @places.address(params[:address]) if params[:address].present?
@places = @places.address(params[:name]) if params[:name].present?
@places = @places.price_greater_than_equal params[:price_from] if params[:price_from].present?
#and more..
方法地址是从模型中的范围构建的 抱歉英文不好
答案 0 :(得分:1)
为什么不使用Rails方式?如果存在params,它们将被更新。验证应该在必要的模型中。
def update
@places.update(places_params)
respond_with(@places)
end
private
def set_places
@places = Places.find(params[:id])
end
def places_params
params.require(:places_params).permit(:address, :postcode, address_attributes: :address (nested attributes))
end