@sergenikitin

Что означает варнинг RubyMine: controller action should call one model method other than an initial find or new.?

В контроллере определен метод:

def create_country
    @country = Country.new(country_params)
    begin
      #сохраняем модель
      @country.save
      #это метод другой модели
      CountryTvText.create_or_update_for_country @country.id, params[:country_tv_text]
      flash[:notice] = "Страна добавлена"
    rescue Exception => e
      flash[:error] = e.message
    end
    redirect_to admin_panel_path
  end


И RubyMine две строчки подсвечивает варнингом: controller action should call one model method other than an initial find or new
@country.save
CountryTvText.create_or_update_for_country @country.id, params[:country_tv_text]


Что я делаю не так? :)
  • Вопрос задан
  • 2422 просмотра
Пригласить эксперта
Ответы на вопрос 2
viktorvsk
@viktorvsk
В первую очередь не делайте так:
rescue Exception => e
А после того, как перепишите на что-то вроде
if @country.save
...
else
...
end

Глядишь, и ошибка устранится сама собой)

Ну а насчет рубимайна, хоть и не пользуюсь, но видимо дело в том, что он видит, что при определенных условиях у вас метод будет состоять из инициализации объекта и никаких дальнейших действий с ним (видимо, когда эксепшн молчаливо пройдет стороной). Но тут могу и ошибаться
Ответ написан
Prognosticator
@Prognosticator
TODO: Здесь будут ворованные умные мысли, типа мои
controller action should call one model method other than an initial find or new
Это предупреждение о том, что вы используете более одного метода модели в контроллере.
Почитайте "Rails best practices"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы