-
-
Notifications
You must be signed in to change notification settings - Fork 248
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cop idea: prevent instance variables in concerns #1047
Comments
What do you mean by an error? NoMethodError or nil |
This would not have happened if the method had been written like this: def define_user_info(user_id)
session[:user_info_id] = user_id
end
I know this case is not specific to concerns. However, I've decided to share my pain about concerns :) |
Pretty sure there’s a cop that would disallow passing instance vars as arguments to method calls with implicit receiver. Or there should be such a cop. It sounds like we’ve shaped this down to “never use instance vars other than assigning them once in the initializer”, but it sounds overly strict. |
Agree, I've closed the issue.
I think more tests is my choice. |
Actual behavior
I have the following code:
I run rubocop:
If I replace the instance variable
@user
with a local variable in the controller, I will get an error, because the variableuser
is not explicitly passed to the#define_user_info
method.Rubocop
ydakuka@yauhenid:~/Work/project$ bin/rails_docker rubocop -V 1.54.1 (using Parser 3.2.2.3, rubocop-ast 1.29.0, running on ruby 2.7.8) [x86_64-linux] - rubocop-capybara 2.18.0 - rubocop-factory_bot 2.23.1 - rubocop-performance 1.18.0 - rubocop-rails 2.20.2 - rubocop-rake 0.6.0 - rubocop-rspec 2.22.0 - rubocop-thread_safety 0.5.1
The text was updated successfully, but these errors were encountered: