Skip to content

Instantly share code, notes, and snippets.

@AfolabiOlaoluwa
Forked from danielpuglisi/users_controller.rb
Created January 21, 2021 17:09
Show Gist options
  • Save AfolabiOlaoluwa/9e98db56950a266e15506b4f35843013 to your computer and use it in GitHub Desktop.
Save AfolabiOlaoluwa/9e98db56950a266e15506b4f35843013 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