Skip to content

Instantly share code, notes, and snippets.

@llusdess
Forked from danielpuglisi/users_controller.rb
Created February 28, 2018 03:44
Show Gist options
  • Select an option

  • Save llusdess/615fa7dec9f55c66cfd7ffd463260eb0 to your computer and use it in GitHub Desktop.

Select an option

Save llusdess/615fa7dec9f55c66cfd7ffd463260eb0 to your computer and use it in GitHub Desktop.
Rails examples: Single Table Inheritance (STI), strong parameters, single controller.
# Variant 1
def user_params(type)
params.require(type.to_sym).permit(attributes)
end
# Variant 2
def user_params(type)
case type
when "user"
params.require(:user).permit(user_attributes)
when "apprentice"
params.require(:apprentice).permit(apprentice_attributes)
end
end
# Variant 3
def update
...
if @user.update(send("#{@user.type.underscore.to_sym}_params"))
...
end
def user_params
params.require(:user).permit(attributes)
end
def apprentice_params
params.require(:apprentice).permit(attributes)
end
# Variant 4
https://github.com/T-Dnzt/sti-with-rails4/blob/master/app/controllers/animals_controller.rb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment