В последнее время я начал использовать Rubocop и пытался лучше подумать о моем коде, и если бы я мог писать лучше. У меня есть метод создания и обновления, которые очень похожи. Rubocop жалуется, что метод имеет слишком много строк кода [12/10]. Мне интересно, как вы собираетесь следовать принципу СУХОЙ здесь. Мне кажется, что response_to следует довести до своего частного метода. Но я не могу понять, что было бы лучшим способом сделать это так:DRYing this Ruby code
- Вспышка может быть: успех или: опасность
- Один проверяет, является ли модели сохранены, а другой, если она обновляется.
- Различные рендеринга в зависимости от того, если модель сохранена или если она была ошибка
Я также не знаю, если я просто должен оставить его в покое. Тот факт, что он настолько избыточен, действительно подходит ко мне. Окончательный Я хочу иметь чистый код, я просто не уверен, если я должен сохнуть этот метод
def create
@category = Category.new(category_params)
respond_to do |format|
if @category.save
flash[:success] = 'Category Successfully Created'
format.html { redirect_to admin_category_path(@category) }
format.json { render :show, status: :created, location: @category }
else
flash[:danger] = 'Errors in creating category, see below'
format.html { render :new }
format.json { render json: @category.errors, status: :unprocessable_entity }
end
end
end
def update
@category = Category.find(params[:id])
respond_to do |format|
if @category.update(category_params)
flash[:success] = 'Category Successfully updated!'
format.html { redirect_to admin_category_path(@category) }
format.json { render :show, status: :created, location: @category }
else
flash[:danger] = 'Errors in updating category, missing information'
format.html { redirect_to action: 'edit', id: @category.id }
format.json { render json: @category.errors, status: :unprocessable_entity }
end
end
end
Отличный вопрос! Тем не менее, голосование закрывается как «в основном основанное на мнениях», потому что есть более одного правильного ответа. –
Поскольку это рабочий код, он не подходит для SO. Вы должны опубликовать его на [CodeReview] (http://codereview.stackexchange.com/). –