У меня есть простое update
действие в Rails 4
контроллера:Контрольное действие содержит более одного метода вызова метода?
#more stuff here
def update
if @user.update(user_params)
flash[:notice] = "User #{@user.username} updated"
redirect_to users_path
else
render 'edit'
end
end
private
def set_user
@user = User.find(params[:id])
end
Однако RubyMine это предупреждение о @user.update
и @user.username
:
Эта проверка предупреждает, если действие контроллера содержит метод более чем один модельный вызов , после начального .find или .new. Рекомендуется внедрить всю бизнес-логику внутри класса модели и использовать один метод для доступа к ней.
Я не вижу more than one model method call
здесь. Может кто-нибудь объяснить, что происходит?
EDIT - У меня есть что-то подобное в create
действие без предупреждает, так что я считаю, что что-то делать с user_params
...
def create
if @user.save
flash[:notice] = "User #{@user.username} created"
redirect_to users_path
else
render 'new'
end
end
'username' - это просто атрибут' User', и я не получаю то же предупреждение для действия create ... – gabrielhilal
'username' по-прежнему является вызовом метода для модели User, но не может сказать почему он не даст вам то же предупреждение для создания действия тоже. – rmagnum2002