{"id":217582,"date":"2015-02-05T00:00:00","date_gmt":"2015-02-04T23:00:00","guid":{"rendered":"https:\/\/blog.lewagon.com\/non-classifiee\/25-gems-indispensables-pour-debuter-une-application-rails\/"},"modified":"2015-02-05T00:00:00","modified_gmt":"2015-02-04T23:00:00","slug":"25-gems-indispensables-pour-debuter-une-application-rails","status":"publish","type":"post","link":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/","title":{"rendered":"25 gems indispensables pour d\u00e9buter une application rails"},"content":{"rendered":"","protected":false},"excerpt":{"rendered":"<p>Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.<\/p>\n","protected":false},"author":1,"featured_media":217583,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[142],"type_de_post":[],"post-format":[175],"class_list":["post-217582","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-skills","tag-tech","post-format-post-fr"],"acf":[],"acfml_non_translatable_locations":null,"_wp_attached_file":null,"_wp_attachment_metadata":null,"wpml_media_processed":null,"_elementor_inline_svg":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"_msc":null,"_elementor_is_screenshot":null,"_wp_attachment_context":null,"_oembed_4f1dc266c1e5b199d2e3668569863d35":null,"_wp_attachment_backup_sizes":null,"description_courte_du_cours":null,"_description_courte_du_cours":null,"sujets":null,"_sujets":null,"niveau":null,"_niveau":null,"duree":null,"_duree":null,"lien_externe_du_cours":null,"_lien_externe_du_cours":null,"_g_feedback_shortcode_8e54bebc0966bf7f9290fee5ef5e57c8a8c597c6":null,"_g_feedback_shortcode_atts_8e54bebc0966bf7f9290fee5ef5e57c8a8c597c6":null,"elementor_font_files":null,"elementor_font_face":null,"_elementor_location":null,"_elementor_priority":null,"_elementor_code":null,"_elementor_extra_options":null,"date_de_levent":null,"_date_de_levent":null,"heure_de_debut_de_levent":null,"_heure_de_debut_de_levent":null,"heure_de_fin_de_levent":null,"_heure_de_fin_de_levent":null,"time_zone":null,"_time_zone":null,"description_de_levent":null,"_description_de_levent":null,"format_du_cours":null,"_format_du_cours":null,"pre-requis":null,"_pre-requis":null,"langue_de_levent":null,"_langue_de_levent":null,"lien_externe_de_levent":null,"_lien_externe_de_levent":null,"_yoast_wpseo_primary_tag_events":null,"lieu_de_levent":null,"_lieu_de_levent":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_omapi_type":null,"_omapi_ids":null,"_omapi_enabled":null,"_yoast_wpseo_content_score":null,"_pll_strings_translations":null,"_yoast_wpseo_primary_post_tag":null,"_yoast_wpseo_primary_type_de_post":null,"_yoast_wpseo_primary_post-format":null,"_oembed_e607e81f61090d85eabdabc743a27470":null,"_oembed_196c62ccee9fda191cd6fa5f568ddc05":null,"_oembed_6b5f28c0de48cbf3a2ad766be5eb3b30":null,"_oembed_082c4292f4cd0dedc40ae746a899501c":null,"om_disable_all_campaigns":null,"wpil_sync_report3":"1","_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_yoast_wpseo_opengraph-title":"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon","_yoast_wpseo_opengraph-description":"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.","_yoast_wpseo_twitter-title":"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon","_yoast_wpseo_twitter-description":"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.","wpil_links_inbound_internal_count":"0","wpil_links_inbound_internal_count_data":[],"wpil_links_outbound_internal_count":"0","wpil_links_outbound_internal_count_data":[],"wpil_links_outbound_external_count":"0","wpil_links_outbound_external_count_data":[],"wpil_sync_report2_time":"2023-08-11T09:32:13+00:00","gnpub_modified_count":null,"_encloseme":null,"_jetpack_memberships_contains_paid_content":null,"_oembed_df252bc3f21e94e550790f0a26013d33":null,"_oembed_7c25793225e5877909b9566a95c01f07":null,"_oembed_time_7c25793225e5877909b9566a95c01f07":null,"_oembed_c035311b2d37111892bc6336ad75c1a7":null,"_oembed_time_c035311b2d37111892bc6336ad75c1a7":null,"_yoast_wpseo_focuskw_text_input":"","_yoast_wpseo_opengraph-image":"https:\/\/blog.lewagon.com\/wp-content\/uploads\/2023\/03\/l4jhothxd0rtkophqmhq82ru0zx5.jpeg","_yoast_wpseo_twitter-image":"https:\/\/blog.lewagon.com\/wp-content\/uploads\/2023\/03\/l4jhothxd0rtkophqmhq82ru0zx5.jpeg","_bnitk_mfd_meta-robots-noindex":null,"_yoast_wpseo_meta-robots-noindex":null,"_bnitk_mfd_meta-robots-nofollow":null,"_yoast_wpseo_meta-robots-nofollow":null,"_oembed_9b38dff8e9475b390d223d1a13735d6e":null,"_oembed_09b03dce1da57707d8b400d6ead6cfea":null,"_oembed_time_09b03dce1da57707d8b400d6ead6cfea":null,"_oembed_761875ecd5d7c814e779a8a1669e3078":null,"_oembed_time_761875ecd5d7c814e779a8a1669e3078":null,"_oembed_60128998417fdcbaac97a635f5785efd":null,"_oembed_time_60128998417fdcbaac97a635f5785efd":null,"_oembed_bbc2c908fc7e611d82dce88119dc4350":null,"_oembed_time_bbc2c908fc7e611d82dce88119dc4350":null,"_oembed_5ada75a4373349f7b136423290505b3a":null,"_oembed_time_5ada75a4373349f7b136423290505b3a":null,"_oembed_086373a651e90a4eb1279fa1f945472c":null,"_oembed_time_086373a651e90a4eb1279fa1f945472c":null,"_wpml_post_translation_editor_native":null,"_oembed_5e24c29ce369f6b80c9eeec04f14665b":null,"_oembed_time_5e24c29ce369f6b80c9eeec04f14665b":null,"_oembed_8c3e7085f10b7c0fc5520e72277d797b":null,"_oembed_time_8c3e7085f10b7c0fc5520e72277d797b":null,"_oembed_1489782c3c8ef26605b6876b88f7bdda":null,"_oembed_time_1489782c3c8ef26605b6876b88f7bdda":null,"_oembed_0a3d659fc8de333aa903ab0b56018d23":null,"_oembed_time_0a3d659fc8de333aa903ab0b56018d23":null,"_oembed_d1585e059963c7dbe1909a198f64637b":null,"_oembed_da273c5e4d4993b38963204fa3018b68":null,"_oembed_time_da273c5e4d4993b38963204fa3018b68":null,"_oembed_a5e2c70342e4f17e48253b0a60b76258":null,"_oembed_time_a5e2c70342e4f17e48253b0a60b76258":null,"_oembed_83c8f84c43191797360817ecdc633650":null,"_oembed_time_83c8f84c43191797360817ecdc633650":null,"_oembed_e105b3463a1e23321ff3d1a9daf4ce77":null,"_oembed_1692f2329443bc1b18fc320e0d77cb4e":null,"_yoast_wpseo_schema_article_type":null,"_oembed_02bf1d274545a46fdad44828db802e9b":null,"_oembed_483efee027379bb1099137e135e60619":null,"_oembed_time_483efee027379bb1099137e135e60619":null,"_oembed_d9e3a2e55472c308a6d4f95f9859d57c":null,"_oembed_time_d9e3a2e55472c308a6d4f95f9859d57c":null,"_oembed_14a773041d4083fdc540105ccc635e1f":null,"_oembed_time_14a773041d4083fdc540105ccc635e1f":null,"_oembed_fd2c0295b311b878f43def139f693291":null,"_oembed_time_fd2c0295b311b878f43def139f693291":null,"_oembed_9e88339a75e081aa4aa002ac43b5917e":null,"_oembed_time_9e88339a75e081aa4aa002ac43b5917e":null,"_oembed_e58b2264fd34411178c5aead6e76fc0e":null,"_oembed_time_e58b2264fd34411178c5aead6e76fc0e":null,"_oembed_bddf29494cd341c273d2f25802785f3a":null,"_oembed_time_bddf29494cd341c273d2f25802785f3a":null,"_oembed_9fdc7ffbd7d1c456cb57323136bcf86d":null,"_oembed_time_9fdc7ffbd7d1c456cb57323136bcf86d":null,"_oembed_6882adf1f7ba34c40d8abda49c078862":null,"_oembed_time_6882adf1f7ba34c40d8abda49c078862":null,"_oembed_42ae0b6a999f98ed81c86edf9b80d360":null,"_oembed_time_42ae0b6a999f98ed81c86edf9b80d360":null,"_oembed_f4dcff6ba8f84f09cade790420ba4d80":null,"_oembed_time_f4dcff6ba8f84f09cade790420ba4d80":null,"_oembed_25071af9d5ecd73a9356fe5704bba4d8":null,"_oembed_time_25071af9d5ecd73a9356fe5704bba4d8":null,"_oembed_a86728f5efc0ca0642006bbb96f843cc":null,"_oembed_time_a86728f5efc0ca0642006bbb96f843cc":null,"_oembed_d7b5055b785ef8a0cf22c87d024bf2a4":null,"_oembed_time_d7b5055b785ef8a0cf22c87d024bf2a4":null,"_oembed_6a73e101cae7c3452b00a72cf0fc9b22":null,"_oembed_time_6a73e101cae7c3452b00a72cf0fc9b22":null,"_oembed_0aef478f0830cc2e857b9a150a7f763a":null,"_oembed_time_0aef478f0830cc2e857b9a150a7f763a":null,"_oembed_d1a3bdcdf10e4859560b01d910ad1120":null,"_oembed_time_d1a3bdcdf10e4859560b01d910ad1120":null,"_oembed_05ef2af36a31586761b7311d393d1df4":null,"_oembed_time_05ef2af36a31586761b7311d393d1df4":null,"_oembed_ed00fe1690bb2e86f1eb06acfe8a13e7":null,"_oembed_time_ed00fe1690bb2e86f1eb06acfe8a13e7":null,"_oembed_59ffcbf71f633752ca4f26b3b4a544c9":null,"_oembed_time_59ffcbf71f633752ca4f26b3b4a544c9":null,"_oembed_a7b688611478922544f14672fda18461":null,"_oembed_time_a7b688611478922544f14672fda18461":null,"_oembed_266f9a151e3a09eeee918af2d28fd24f":null,"_oembed_time_266f9a151e3a09eeee918af2d28fd24f":null,"_oembed_9f52726dd229470e47d40ff0c8aeb5f8":null,"_oembed_time_9f52726dd229470e47d40ff0c8aeb5f8":null,"_oembed_5547f713058fed19783e0533ce393a31":null,"_oembed_time_5547f713058fed19783e0533ce393a31":null,"_oembed_68ff8dd20e77e109ad084c2252ca040d":null,"_oembed_time_68ff8dd20e77e109ad084c2252ca040d":null,"_oembed_819f09a569080db91bf5dadda0a30d9f":null,"_oembed_time_819f09a569080db91bf5dadda0a30d9f":null,"_oembed_4fc081fbdf0afd05a624ba852a63e133":null,"_oembed_time_4fc081fbdf0afd05a624ba852a63e133":null,"_oembed_d66baf1301b99db8b19a0924319cf03e":null,"_oembed_time_d66baf1301b99db8b19a0924319cf03e":null,"_oembed_14a5f80e3eef4903e482b0ef3799659e":null,"_oembed_time_14a5f80e3eef4903e482b0ef3799659e":null,"_oembed_c24c715adb3853482526a794a5f3c3bb":null,"_oembed_time_c24c715adb3853482526a794a5f3c3bb":null,"_oembed_9c493e098be2852715cc990b6e6243f3":null,"_oembed_time_9c493e098be2852715cc990b6e6243f3":null,"_oembed_b60b7e3028d326711916099f54e986fa":null,"_oembed_time_b60b7e3028d326711916099f54e986fa":null,"_oembed_5283e19fcec44e632de8d436d46ec2f7":null,"_oembed_time_5283e19fcec44e632de8d436d46ec2f7":null,"_oembed_057692cb4479cf5c77363896a28db44f":null,"_oembed_time_057692cb4479cf5c77363896a28db44f":null,"_oembed_e8cb0f41d141fe5eb9d69fc32a98cd72":null,"_oembed_time_e8cb0f41d141fe5eb9d69fc32a98cd72":null,"_oembed_75dcbca80ec1829a77578390fae8fa56":null,"_oembed_time_75dcbca80ec1829a77578390fae8fa56":null,"_oembed_e49318dfeabd5f16d7967e2fcc746fbd":null,"_oembed_time_e49318dfeabd5f16d7967e2fcc746fbd":null,"_oembed_76116b03fe5a013341210d278021184b":null,"_oembed_time_76116b03fe5a013341210d278021184b":null,"_oembed_6c81e1c9b634b5066fb37aaccfd71053":null,"_oembed_time_6c81e1c9b634b5066fb37aaccfd71053":null,"_oembed_abbc1aa97e554f334c2ce25f0d883702":null,"_oembed_time_abbc1aa97e554f334c2ce25f0d883702":null,"_oembed_ba421363b36dd97c087665d5025396cf":null,"_oembed_time_ba421363b36dd97c087665d5025396cf":null,"_oembed_a98f236eb48eb9cd4ede7f319e9cfbc7":null,"_oembed_time_a98f236eb48eb9cd4ede7f319e9cfbc7":null,"_oembed_d61fec7d73397687995fec8d7bd9852f":null,"_oembed_time_d61fec7d73397687995fec8d7bd9852f":null,"_oembed_2e9e46a0176fe90e49cc5fff32ac6912":null,"_oembed_time_2e9e46a0176fe90e49cc5fff32ac6912":null,"_oembed_8a304f49b3aa1c3eec8d0b0577e05e3d":null,"_oembed_time_8a304f49b3aa1c3eec8d0b0577e05e3d":null,"_oembed_ad30824ca1e37cffdad2dbce46c4998a":null,"_oembed_time_ad30824ca1e37cffdad2dbce46c4998a":null,"_oembed_6c3dacc8273d4877c65378c1f324c9cc":null,"_oembed_time_6c3dacc8273d4877c65378c1f324c9cc":null,"_oembed_1d0e7d3c6d826ca1e56a24218abba6f2":null,"_oembed_time_1d0e7d3c6d826ca1e56a24218abba6f2":null,"_oembed_50929cd1300f7cdee57e6e5451afb186":null,"_oembed_time_50929cd1300f7cdee57e6e5451afb186":null,"_oembed_72dc139d079681a2c3d759a86af48ccc":null,"_oembed_time_72dc139d079681a2c3d759a86af48ccc":null,"_oembed_d359fdb1fa5da9e62dd3505937f46fb6":null,"_oembed_time_d359fdb1fa5da9e62dd3505937f46fb6":null,"_oembed_589d6065ccac39334963be5bd8656631":null,"_oembed_time_589d6065ccac39334963be5bd8656631":null,"_oembed_715be02b6ebadc1be6dd638a57d01eb7":null,"_oembed_time_715be02b6ebadc1be6dd638a57d01eb7":null,"_oembed_f5139a9df267d3aa532f5b56409c90b0":null,"_oembed_time_f5139a9df267d3aa532f5b56409c90b0":null,"_oembed_3d9a26be229b27005ca74596fb62cc08":null,"_oembed_time_3d9a26be229b27005ca74596fb62cc08":null,"_oembed_a7d6f0ce79de685fc6f7f4d447e15468":null,"_oembed_time_a7d6f0ce79de685fc6f7f4d447e15468":null,"_oembed_20849479e832b5312335e3086c5f972b":null,"_oembed_time_20849479e832b5312335e3086c5f972b":null,"_oembed_2be4d392f66846deb7624c1bf3bc293e":null,"_oembed_time_2be4d392f66846deb7624c1bf3bc293e":null,"_oembed_9bcf546ec292041d23df28a719840688":null,"_oembed_time_9bcf546ec292041d23df28a719840688":null,"_oembed_0858ffd7404bcd7d82896f942481fe63":null,"_oembed_time_0858ffd7404bcd7d82896f942481fe63":null,"_oembed_4a2dd0ecf082a7c7d82731c06a644799":null,"_oembed_time_4a2dd0ecf082a7c7d82731c06a644799":null,"_oembed_8a1e46bc730cb21c1085d157ae6fa8b6":null,"_oembed_time_8a1e46bc730cb21c1085d157ae6fa8b6":null,"_oembed_cae7deb931d75f809e459e912e71429a":null,"_oembed_time_cae7deb931d75f809e459e912e71429a":null,"_oembed_6fcb4f8ab72abccda75674f71a946f97":null,"_oembed_time_6fcb4f8ab72abccda75674f71a946f97":null,"_oembed_7f0bfd584f844117a64fe73d83b43245":null,"_oembed_time_7f0bfd584f844117a64fe73d83b43245":null,"_oembed_d0aea105cffdf6e004979cf1e4f51e96":null,"_oembed_time_d0aea105cffdf6e004979cf1e4f51e96":null,"_oembed_e53b85b8766b3dc91338f6c1b95a2541":null,"_oembed_time_e53b85b8766b3dc91338f6c1b95a2541":null,"_oembed_48832be87b763046d232c1f2b5ac5fb3":null,"_oembed_time_48832be87b763046d232c1f2b5ac5fb3":null,"_oembed_32a9a34fcf91c466be9a08e1dba3c84e":null,"_oembed_time_32a9a34fcf91c466be9a08e1dba3c84e":null,"_oembed_fb50b2dc07acfa2418f00cdc2ad4c4c2":null,"_oembed_time_fb50b2dc07acfa2418f00cdc2ad4c4c2":null,"_oembed_3089e1d62f944a73b38c996e49abd2fc":null,"_oembed_time_3089e1d62f944a73b38c996e49abd2fc":null,"_oembed_1ecc99e75cf5d001c8da4f4d600703a8":null,"_oembed_time_1ecc99e75cf5d001c8da4f4d600703a8":null,"_oembed_b9c03ca24b382c17966861d251dc3b8d":null,"_oembed_time_b9c03ca24b382c17966861d251dc3b8d":null,"_wp_trash_meta_status":null,"_wp_trash_meta_time":null,"_wp_desired_post_slug":null,"_oembed_031755ba22f2b639d88c78254a99ff39":null,"_oembed_time_031755ba22f2b639d88c78254a99ff39":null,"description_de_la_ressource":null,"_description_de_la_ressource":null,"titre_du_fichier":null,"_titre_du_fichier":null,"_edit_last":null,"_edit_lock":null,"_wp_old_slug":null,"_top_nav_excluded":null,"_cms_nav_minihome":null,"inline_featured_image":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"_yoast_wpseo_wordproof_timestamp":null,"_wpml_media_duplicate":"1","_thumbnail_id":"217583","_wpml_media_featured":"1","_wpml_word_count":"{\"total\":1359,\"to_translate\":{\"en\":1359,\"de\":1359,\"ja\":1359,\"pt-br\":1359,\"es\":1359}}","_last_translation_edit_mode":null,"_last_editor_used_jetpack":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_wp_page_template":"default","_elementor_page_settings":null,"_elementor_data":null,"_elementor_page_assets":[],"_elementor_version":null,"_elementor_pro_version":null,"_elementor_elements_default_values":null,"_elementor_css":null,"_elementor_source":null,"_elementor_conditions":null,"_wpml_location_migration_done":null,"_elementor_controls_usage":null,"_elementor_screenshot_failed":null,"_elementor_screenshot":null,"_elementor_popup_display_settings":null,"_yoast_wpseo_primary_category":null,"_wp_old_date":null,"_elementor_template_widget_type":null,"_icl_lang_duplicate_of":null,"_yoast_wpseo_metadesc":"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.","_yoast_wpseo_title":"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon","contenu_de_larticle":"<div>De votre environnement de d\u00e9veloppement \u00e0 la mise en production, voici une s\u00e9lection non exhaustive d'une vingtaine de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es, mais indispensables au lancement de votre projet. L'objectif ? Gagner un temps pr\u00e9cieux dans votre temps de d\u00e9veloppement en vous \u00e9vitant de coder \u00e0 la main des features d\u00e9j\u00e0 existantes.<br><br><\/div><div><strong>Important :<\/strong> Nous vous invitons ensuite \u00e0 consulter la documentation de chacune des gems pr\u00e9sent\u00e9es afin de savoir comment les utiliser au sein de votre projet.<figure class=\"attachment attachment--preview\" data-trix-attachment=\"{&quot;contentType&quot;:&quot;image&quot;,&quot;height&quot;:675,&quot;url&quot;:&quot;https:\/\/raw.githubusercontent.com\/lewagon\/www-images\/master\/blog\/posts\/2015-01-23-25-gems-starts-rubyonrails-project.jpg&quot;,&quot;width&quot;:1200}\" data-trix-content-type=\"image\"><img src=\"https:\/\/raw.githubusercontent.com\/lewagon\/www-images\/master\/blog\/posts\/2015-01-23-25-gems-starts-rubyonrails-project.jpg\" width=\"1200\" height=\"675\"><figcaption class=\"attachment__caption\"><\/figcaption><\/figure><\/div><h2>Development:<\/h2><div><br><\/div><div>Les gems suivantes sont \u00e0 inclure au sein de votre Gemfile dans le groupe :development afin de n'en b\u00e9n\u00e9ficier qu'en local.<br><br><\/div><pre>group :development do\n  gem \"better_errors\"\n  gem \"binding_of_caller\"\n  gem \"quiet_assets\"\n  gem \"pry-byebug\"\n  gem \"faker\"\n  gem \"letter_opener\"\nend<\/pre><h3><a href=\"https:\/\/github.com\/BetterErrors\/better_errors\"><strong>Better Errors &amp; Binding of Caller<\/strong><\/a><\/h3><div>Ces deux gems travaillent de concert pour remplacer la page d'erreur par d\u00e9faut de Rails afin de vous indiquer o\u00f9 se trouve l'erreur, vous proposer un <a href=\"http:\/\/en.wikipedia.org\/wiki\/Read%E2%80%93eval%E2%80%93print_loop\">REPL<\/a> (une console), inspecter params, vos variables d'instance et de parcourir facilement la stack d\u2019une erreur.<br><br><a href=\"https:\/\/github.com\/deivid-rodriguez\/pry-byebug\"><strong>Pry Byebug<\/strong><\/a><em><br><\/em><br><\/div><div><a href=\"https:\/\/vimeo.com\/87710671\">Pry<\/a> offre une alternative color\u00e9e \u00e0 IRB, et Pry Byebug permet de stopper l'ex\u00e9cution du code, avec des points d\u2019arr\u00eat, pour vous offrir la possibilit\u00e9 de tester\/d\u00e9bugger votre application \u00e0 la vol\u00e9e.<br><br><a href=\"https:\/\/github.com\/puma\/puma\"><strong>Puma<\/strong><\/a><strong> <\/strong><br><br><\/div><div>Puma est un serveur HTTP plus rapide que Webrick (propos\u00e9 de base sur vos applications Rails). Cette gem permet d'augmenter les performances quotidiennes de votre site et de mieux g\u00e9rer une \u00e9ventuelle charge de trafic en traitant plusieurs requ\u00eates en parall\u00e8le.<\/div><h3><a href=\"https:\/\/github.com\/evrone\/quiet_assets\"><strong>Quiet Assets<\/strong><\/a><\/h3><div>Quiet Assets vous permet de soulager le log de votre console de d\u00e9veloppement en supprimant les requ\u00eates HTTP li\u00e9es \u00e0 l'<em>assets pipeline<\/em> de Rails. Dites au revoir aux multiples \"GET \/assets\/blog\/thumbnail-api-webhook-tutorial-be5d3373ac225d0d5d0f0060aa7b3eeb.jpg HTTP\/1.1\" 304 - 0.0154 et soulagez vos r\u00e9tines.<br><br><a href=\"https:\/\/github.com\/stympy\/faker\"><strong>Faker<\/strong><\/a><\/div><div><br>Un indispensable pour peupler votre base de fausses donn\u00e9es (nom, email, adresses...) lors du d\u00e9veloppement de votre application sans avoir \u00e0 tout cr\u00e9er \u00e0 la main !<br><br><a href=\"https:\/\/github.com\/ryanb\/letter_opener\"><strong>Letter Opener<\/strong><\/a><\/div><div><br>Letter Opener vous permet de pr\u00e9visualiser vos emails directement dans votre navigateur sans avoir \u00e0 inclure un syst\u00e8me d'envoi d'emails au sein de votre environnement de d\u00e9veloppement.<br><br><br><\/div><h2>D\u00e9ploiement<\/h2><div><br><\/div><div>Les gems suivantes sont \u00e0 inclure au sein de votre Gemfile dans le groupe :production afin de n'en b\u00e9n\u00e9ficier que lorsque votre application est push\u00e9e sur Heroku ou tout autre service.<br><br><\/div><pre>group :production do\n  gem \"rails_12factor\"\nend<\/pre><div><br><\/div><div><a href=\"https:\/\/github.com\/heroku\/rails_12factor\"><strong>Rails 12factor<\/strong><\/a><\/div><div><br>Rails 12factor r\u00e9\u00e9crit quelques param\u00e8tres de Rails afin de faciliter la scalabilit\u00e9 et la mise \u00e0 jour r\u00e9guli\u00e8re de votre application selon les conventions de <a href=\"http:\/\/12factor.net\/\">12factor<\/a>. Cette gem s'occupe principalement de donner un acc\u00e8s aux logs et \u00e9galement au dossier app\/assets d'\u00eatre servi en production afin de donner un acc\u00e8s \u00e0 vos fichiers css, js et images.<br><br><br><\/div><h2>Quelques fonctionnalit\u00e9s utiles<\/h2><div><em><br><\/em><a href=\"https:\/\/github.com\/twbs\/bootstrap-sass#a-ruby-on-rails\"><strong>Bootstrap Sass<\/strong><\/a><em><br><\/em><br><\/div><div>De mani\u00e8re tr\u00e8s concr\u00e8te, apr\u00e8s avoir install\u00e9 cette gem et import\u00e9 les styles Bootstrap dans app\/assets\/stylesheets\/application.scss via&nbsp; @import \"bootstrap-sprockets\"; et @import \"bootstrap\"; vous aurez ensuite acc\u00e8s \u00e0 l'ensemble du <a href=\"http:\/\/getbootstrap.com\/\">framework CSS Bootstrap<\/a> via votre markup html.<br><br><\/div><div><a href=\"https:\/\/github.com\/plataformatec\/simple_form\"><strong>Simple Form<\/strong><\/a><br><br><\/div><div>Simple Form simplifie la cr\u00e9ation de vos formulaires gr\u00e2ce \u00e0 une syntaxe tr\u00e8s l\u00e9g\u00e8re et vous donne la possibilit\u00e9 d'invoquer et de customiser les \u00e9l\u00e9ments label, hints, errors et input selon votre bon vouloir.<br><br><\/div><pre>&lt;%= simple_form_for @user do |f| %&gt;\n  &lt;%= f.input :username, label: 'Your username please' %&gt;\n  &lt;%= f.input :password, hint: 'No special characters.' %&gt;\n  &lt;%= f.input :email, placeholder: 'user@domain.com' %&gt;\n  &lt;%= f.input :remember_me, inline_label: 'Yes, remember me' %&gt;\n  &lt;%= f.button :submit %&gt;\n&lt;% end %&gt;<\/pre><div><br>\u00c0 noter que cette gem est tr\u00e8s facilement int\u00e9grable avec Bootstrap et Foundation via ses options d'installation.<\/div><div><em><br><\/em><a href=\"https:\/\/github.com\/plataformatec\/devise\"><strong>Devise &amp; Omniauth<\/strong><\/a><br>&nbsp;<\/div><div>Devise vous offre une solution d'authentification compl\u00e8te (Mod\u00e8le, Vue et Controller) fiable et s\u00e9curis\u00e9e. Outre le fait d'offrir \u00e0 plusieurs utilisateurs la possibilit\u00e9 d'\u00eatre connect\u00e9s en m\u00eame temps, cette gem peut \u00e9galement \u00eatre agr\u00e9ment\u00e9e du module <a href=\"https:\/\/github.com\/intridea\/omniauth\">Omniauth<\/a> afin de permettre \u00e0 vos utilisateurs de se connecter \u00e0 votre service via Facebook ou Twitter Connect.<br><br><\/div><div><a href=\"https:\/\/github.com\/varvet\/pundit\"><strong>Pundit<\/strong><\/a><br><br><\/div><div>Pundit permet de g\u00e9rer simplement et de mani\u00e8re centralis\u00e9e les autorisations des utilisateurs de votre application dans app\/policies. \u00c0 vous de dupliquer \u00e0 l'int\u00e9rieur de ce fichier toutes vos classes controller accompagn\u00e9es du suffixe Policy. D\u00e9finissez ensuite les droits de vos current_user sur chaque m\u00e9thode de classe afin de les laisser ou faire telle ou telle action du controller associ\u00e9.<\/div><div><em><br><\/em><a href=\"https:\/\/github.com\/thoughtbot\/paperclip\"><strong>Paperclip, Carrierwave &amp; Dragonfly<\/strong><\/a><br><br><\/div><div>Ces trois gems aux fonctionnements l\u00e9g\u00e8rement diff\u00e9rents se proposent de g\u00e9rer l'upload et le traitement de vos images. D'un c\u00f4t\u00e9 <a href=\"https:\/\/github.com\/thoughtbot\/paperclip\">Paperclip<\/a> et <a href=\"https:\/\/github.com\/carrierwaveuploader\/carrierwave\">Carrierwave<\/a> vont s'occuper de redimensionner puis de stocker l'original du fichier ainsi que toutes les redimensions n\u00e9cessaires \u00e0 votre template de cette m\u00eame image.<br><br><\/div><div>De l'autre c\u00f4t\u00e9, <a href=\"https:\/\/github.com\/markevans\/dragonfly\">Dragonfly<\/a>. Cette gem stocke la version originale dans un premier temps et la redimensionne \u00e0 la vol\u00e9e pour chaque action de l'utilisateur. Cela n\u00e9cessite l'installation d'un cache pour resservir les images afin de limiter au maximum un travail serveur trop important.<\/div><div><em><br><\/em><a href=\"https:\/\/github.com\/amro\/gibbon\"><strong>Gibbon<\/strong><\/a><br><br><\/div><div>Gibbon est un wrapper d\u00e9di\u00e9 \u00e0 l'API MailChimp afin de vous aider \u00e0 synchroniser votre base de donn\u00e9es pour affiner la gestion de vos listes, cr\u00e9er de nouveaux segments en fonction des actions de vos utilisateurs, ou tout simplement cr\u00e9er un formulaire d'inscription au sein de votre application. L\u2019avantage de la gem sur le widget javascript est la possibilit\u00e9 de d\u00e9sactiver le <a href=\"http:\/\/blog.mailchimp.com\/double-opt-in-vs-single-opt-in-stats\/\"><em>double opt-in<\/em><\/a><\/div><div><em><br><\/em><a href=\"https:\/\/github.com\/apneadiving\/Google-Maps-for-Rails\"><strong>Google Maps for Rails<\/strong><\/a><br><br><\/div><div>Gmaps4rails vous permet de tr\u00e8s rapidement customiser vos Google Maps en y incluant des marqueurs et fen\u00eatres d'informations dynamiques.<br><br><\/div><div><a href=\"https:\/\/github.com\/kaminari\/kaminari\"><strong>Kaminari<\/strong><\/a><br><br><\/div><div>Kaminari offre une solution compl\u00e8te et int\u00e9gralement customisable pour vos paginations. Une fois install\u00e9e, tous vos mod\u00e8les peuvent \u00eatre pagin\u00e9s sans aucune action requise de votre part du c\u00f4t\u00e9 des mod\u00e8les et des helpers.<br><br><\/div><div><a href=\"https:\/\/github.com\/thoughtbot\/high_voltage\"><strong>High Voltage<\/strong><\/a><br><br><\/div><div>High Voltage vous permet de tr\u00e8s simplement g\u00e9rer vos pages statiques. Apr\u00e8s l'installation il vous suffit de cr\u00e9er un dossier pages dans vos views et d'y placer vos pages. Aucune configuration de rooting, pas de helpers \u00e0 cr\u00e9er, ni de controller. Tout est pris en charge pour vous !<\/div><div><em><br><\/em><a href=\"https:\/\/github.com\/laserlemon\/figaro\"><strong>Figaro<\/strong><\/a><br><br><\/div><div>Figaro vous permet de renforcer la s\u00e9curit\u00e9 de votre application en masquant les tokens, mots de passe et autre credentials d'APIs afin d'emp\u00eacher Git de les stocker (et ainsi \u00e0 tout un chacun d'y avoir acc\u00e8s). Il vous est tout de m\u00eame possible d'y avoir acc\u00e8s via la variable d'environnement ENV.<br><br><\/div><div><a href=\"https:\/\/github.com\/svenfuchs\/i18n\"><strong>Rails-i18n<\/strong><\/a><br><br><\/div><div>Traduisez et localisez votre site rapidement gr\u00e2ce \u00e0 rails-i18n. R\u00e9digez toutes vos traductions dans des fichiers yml plac\u00e9s dans config &gt; locals et appelez-les au sein de vos vues en fonction de la langue s\u00e9lectionn\u00e9e par vos utilisateurs.<br><br><\/div><div><a href=\"https:\/\/github.com\/nathanvda\/cocoon\"><strong>Cocoon<\/strong><\/a><br><br><\/div><div>Cocoon permet une gestion plus simple des formulaires nest\u00e9s en permettant de cr\u00e9er, d\u00e9truire, mettre \u00e0 jour l'ensemble des mod\u00e8les impliqu\u00e9s sur une unique vue.<\/div><div><em><br><\/em><a href=\"https:\/\/github.com\/activeadmin\/activeadmin\"><strong>Active Admin<\/strong><\/a><br><br><\/div><div>Tous les administrateurs de votre service ne sont pas forc\u00e9ment des d\u00e9veloppeurs, et donc ne pourront pas se contenter d\u2019un heroku run bundle exec rails c. Active Admin permet de cr\u00e9er une interface d'administration int\u00e9gralement et facilement customisable avec l'ensemble des fonctionnalit\u00e9s de votre application.<br><br><\/div><div><a href=\"https:\/\/github.com\/mperham\/sidekiq\"><strong>Sidekiq<\/strong><\/a><br><br><\/div><div>Sidekiq est l\u2019une des gems de gestion de worker, pour ex\u00e9cuter les traitements lourds de votre application dans des processus asynchrones, mis dans une file d\u2019attente. Depuis Rails 4.2, un framework unifi\u00e9, <a href=\"http:\/\/edgeguides.rubyonrails.org\/active_job_basics.html\">ActiveJob<\/a> est disponible. Sidekiq est compatible avec cette approche. Un exemple d\u2019utilisation de Sidekiq est l\u2019envoi d\u2019un mail \u00e0 10 utilisateurs. Si vous ex\u00e9cutez cette action dans un controller, l\u2019utilisateur va attendre longtemps que le traitement soit fait, et avoir une impression de navigation lente. Si vous d\u00e9chargez ce traitement dans un worker sidekiq, vous pouvez renvoyer une page web \u00e0 votre utilisateur rapidement en confiant l\u2019ex\u00e9cution de la t\u00e2che longue \u00e0 Sidekiq.<br><br><br><\/div><h3>Liens utiles<\/h3><div><br><\/div><ul><li><a href=\"https:\/\/rubygems.org\/gems\">Rubygems<\/a><\/li><li><a href=\"http:\/\/railscasts.com\/\">Railscasts<\/a><\/li><\/ul><div><br><\/div><div><br><\/div>","_contenu_de_larticle":null,"titre_de_la_banniere":null,"_titre_de_la_banniere":null,"paragraphe_de_la_banniere":null,"_paragraphe_de_la_banniere":null,"intitule_du_bouton_de_la_banniere":null,"_intitule_du_bouton_de_la_banniere":null,"lien_du_bouton_de_la_banniere":null,"_lien_du_bouton_de_la_banniere":null,"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>25 gems indispensables pour d\u00e9buter une application rails | Le Wagon<\/title>\n<meta name=\"description\" content=\"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon\" \/>\n<meta property=\"og:description\" content=\"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Le Wagon\" \/>\n<meta property=\"article:published_time\" content=\"2015-02-04T23:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.lewagon.com\/wp-content\/uploads\/2023\/03\/l4jhothxd0rtkophqmhq82ru0zx5.jpeg\" \/>\n<meta name=\"author\" content=\"MickaelT\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon\" \/>\n<meta name=\"twitter:description\" content=\"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blog.lewagon.com\/wp-content\/uploads\/2023\/03\/l4jhothxd0rtkophqmhq82ru0zx5.jpeg\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"MickaelT\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/\"},\"author\":{\"name\":\"MickaelT\",\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#\\\/schema\\\/person\\\/8b4567040d8a3520451362bb71ea09e6\"},\"headline\":\"25 gems indispensables pour d\u00e9buter une application rails\",\"datePublished\":\"2015-02-04T23:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/\"},\"wordCount\":8,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.lewagon.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1\",\"keywords\":[\"Tech\"],\"articleSection\":[\"Skills\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/\",\"url\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/\",\"name\":\"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.lewagon.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1\",\"datePublished\":\"2015-02-04T23:00:00+00:00\",\"description\":\"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.lewagon.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.lewagon.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/skills\\\/25-gems-indispensables-pour-debuter-une-application-rails\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Skills\",\"item\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/.\\\/skills\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"25 gems indispensables pour d\u00e9buter une application rails\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/\",\"name\":\"Le Wagon\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#organization\",\"name\":\"Le Wagon\",\"url\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blog.lewagon.com\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/blog.lewagon.com\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/logo.svg\",\"width\":172,\"height\":44,\"caption\":\"Le Wagon\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/#\\\/schema\\\/person\\\/8b4567040d8a3520451362bb71ea09e6\",\"name\":\"MickaelT\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/627722b9f4aaa9f24735f9b8656525ab01111fb2c94de91dc70c9c1bffb90e7b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/627722b9f4aaa9f24735f9b8656525ab01111fb2c94de91dc70c9c1bffb90e7b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/627722b9f4aaa9f24735f9b8656525ab01111fb2c94de91dc70c9c1bffb90e7b?s=96&d=mm&r=g\",\"caption\":\"MickaelT\"},\"sameAs\":[\"http:\\\/\\\/blog.lewagon.com\"],\"url\":\"https:\\\/\\\/blog.lewagon.com\\\/fr\\\/author\\\/mickaelt\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon","description":"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/","og_locale":"fr_FR","og_type":"article","og_title":"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon","og_description":"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.","og_url":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/","og_site_name":"Blog Le Wagon","article_published_time":"2015-02-04T23:00:00+00:00","og_image":[{"url":"https:\/\/blog.lewagon.com\/wp-content\/uploads\/2023\/03\/l4jhothxd0rtkophqmhq82ru0zx5.jpeg","type":"","width":"","height":""}],"author":"MickaelT","twitter_card":"summary_large_image","twitter_title":"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon","twitter_description":"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.","twitter_image":"https:\/\/blog.lewagon.com\/wp-content\/uploads\/2023\/03\/l4jhothxd0rtkophqmhq82ru0zx5.jpeg","twitter_misc":{"\u00c9crit par":"MickaelT"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/#article","isPartOf":{"@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/"},"author":{"name":"MickaelT","@id":"https:\/\/blog.lewagon.com\/fr\/#\/schema\/person\/8b4567040d8a3520451362bb71ea09e6"},"headline":"25 gems indispensables pour d\u00e9buter une application rails","datePublished":"2015-02-04T23:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/"},"wordCount":8,"publisher":{"@id":"https:\/\/blog.lewagon.com\/fr\/#organization"},"image":{"@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.lewagon.com\/wp-content\/uploads\/2023\/04\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1","keywords":["Tech"],"articleSection":["Skills"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/","url":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/","name":"25 gems indispensables pour d\u00e9buter une application rails | Le Wagon","isPartOf":{"@id":"https:\/\/blog.lewagon.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/#primaryimage"},"image":{"@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.lewagon.com\/wp-content\/uploads\/2023\/04\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1","datePublished":"2015-02-04T23:00:00+00:00","description":"Une s\u00e9lection non exhaustive de gems aux fonctionnalit\u00e9s aussi diverses que vari\u00e9es mais indispensables au lancement de votre projet.","breadcrumb":{"@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.lewagon.com\/wp-content\/uploads\/2023\/04\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.lewagon.com\/wp-content\/uploads\/2023\/04\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/blog.lewagon.com\/fr\/skills\/25-gems-indispensables-pour-debuter-une-application-rails\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.lewagon.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Skills","item":"https:\/\/blog.lewagon.com\/fr\/.\/skills\/"},{"@type":"ListItem","position":3,"name":"25 gems indispensables pour d\u00e9buter une application rails"}]},{"@type":"WebSite","@id":"https:\/\/blog.lewagon.com\/fr\/#website","url":"https:\/\/blog.lewagon.com\/fr\/","name":"Le Wagon","description":"","publisher":{"@id":"https:\/\/blog.lewagon.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.lewagon.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.lewagon.com\/fr\/#organization","name":"Le Wagon","url":"https:\/\/blog.lewagon.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.lewagon.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.lewagon.com\/wp-content\/uploads\/2023\/02\/logo.svg","contentUrl":"https:\/\/blog.lewagon.com\/wp-content\/uploads\/2023\/02\/logo.svg","width":172,"height":44,"caption":"Le Wagon"},"image":{"@id":"https:\/\/blog.lewagon.com\/fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blog.lewagon.com\/fr\/#\/schema\/person\/8b4567040d8a3520451362bb71ea09e6","name":"MickaelT","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/627722b9f4aaa9f24735f9b8656525ab01111fb2c94de91dc70c9c1bffb90e7b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/627722b9f4aaa9f24735f9b8656525ab01111fb2c94de91dc70c9c1bffb90e7b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/627722b9f4aaa9f24735f9b8656525ab01111fb2c94de91dc70c9c1bffb90e7b?s=96&d=mm&r=g","caption":"MickaelT"},"sameAs":["http:\/\/blog.lewagon.com"],"url":"https:\/\/blog.lewagon.com\/fr\/author\/mickaelt\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.lewagon.com\/wp-content\/uploads\/2023\/04\/l4jhothxd0rtkophqmhq82ru0zx5-3.jpeg?fit=1200%2C675&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/posts\/217582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/comments?post=217582"}],"version-history":[{"count":0,"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/posts\/217582\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/media\/217583"}],"wp:attachment":[{"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/media?parent=217582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/categories?post=217582"},{"taxonomy":"type_de_post","embeddable":true,"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/type_de_post?post=217582"},{"taxonomy":"post-format","embeddable":true,"href":"https:\/\/blog.lewagon.com\/fr\/wp-json\/wp\/v2\/post-format?post=217582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}