From bdb2b7967fd5b7eb70135bc50c6445287daea1ee Mon Sep 17 00:00:00 2001 From: Jonathan Hefner Date: Wed, 28 Oct 2020 16:56:01 -0500 Subject: [PATCH] =?UTF-8?q?Edit=20GS=20guide=20=C2=A7=20Creating=20a=20New?= =?UTF-8?q?=20Article=20[ci-skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #39920. Resolves #38328. Co-Authored-By: Ryan Bigg --- .../routing_error_no_controller.png | Bin 3869 -> 0 bytes .../template_is_missing_articles_new.png | Bin 21220 -> 0 bytes .../unknown_action_new_for_articles.png | Bin 4933 -> 0 bytes guides/source/getting_started.md | 188 ++++-------------- 4 files changed, 41 insertions(+), 147 deletions(-) delete mode 100644 guides/assets/images/getting_started/routing_error_no_controller.png delete mode 100644 guides/assets/images/getting_started/template_is_missing_articles_new.png delete mode 100644 guides/assets/images/getting_started/unknown_action_new_for_articles.png diff --git a/guides/assets/images/getting_started/routing_error_no_controller.png b/guides/assets/images/getting_started/routing_error_no_controller.png deleted file mode 100644 index 52150f0426026f2387326a78d6ce588b889fd89c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3869 zcmZ8k2T&8*wha)aDMh4rL8%u+z$j6WNDB~(6zNr(N@58}%!NScRfvK>1jIz}0x>k{ zB}4=f5HNH|0w_pH1f?nnk9+@{|K9&IXZD=6_nb3(&pK!CS;=-b=EwP@_y7RFaj1pK zH2{F4^>81|!+B_z-#3B*0D&)16Jy5+4%Tpo5CCwDtFnV-go#Eu6$2XiuPz|afCv!^ z9>4&uorwlRj_em z9%f(*UO_i}eO9LY#(Ar(?EbQW65XTH!*_Xe55DOgMVzw$#S3ZR;6L&ke&Hxyny5v?-sZoZnQ(yy>JYR(GX2RpK1I566}>*-3VB3ot;F_H_0B>$yXSl15KGbw{jhAW zquKv!;c^sVHhfHNDmq@>*8g|+sxMTo&6|za?!P%wF;Z59kzpdPAALOSsxpH4CCBmn z`{(TmT1H}();`qxwa}zlFNn9 zdFh3hsNiRrtp0UdqpqEC_>|wT+mAXtDwyzf^MkP^X>!NTR%e56-c(b>Wx-}N0+J>+ zA8(*b%VMAZ+3d7HBm^gZu%AFVzneOPUSuJ+OEJ0K;i4ar)yZq7{?Bd3lZSnTzfgTLtxWA`XLO_xfkh=Fj=x~t?97Hy{wkJZyqk_>l@3}4o{>d!Jldgh$ zpOd(6o$rsnZH~T8mW>_m?=(hJ=H@p2$0zVYevZ5NLjno14mB~((~`A8HW2*lfPr>y zGTtKj4wI(S#$*pB1(nE>YlfQ|Px{L-{5-|Uwr@W&%#wsY@H@5d#Jx`L)vj!6z;_9b z>yXor>vv1*+>OzmctEe6@(j~$nSVI?Rqz_fv(-=loKAr79Ol*Tsj8*gZ#)^NTRgO7e|1(K#I8qzsA-8AC~52LMD9;O0$6{UO7_jzNX2!-AH1V#*I zbk@G%#R(#d&rjKx-Z{2}_`JaeMYte$%kZQ3?HoYfSHbcj7l&a3Z{=Fxhwr{KMDok? zJf|Q(-{%T}bIVpr;M-zTq0){x_f&aWw`|wzig&RWUc}-`hKINbZo#j{H+O4onJ8W7 z4eQ0-7x?u@MkWMTHGd;e%Vxp_!%hR@ydCKBG4xuKS{(B6^YfV;7m_W|KVu&RKWMQ; zw6}d3-sD9e>pZEyoFN!Zth~%Hr<)iyG1;Hsr1=d{(Z`j8m6Cd2L9f66>yN(VtR$Vl zJ>30+I;E#r-Jyf;o2MLn+1#{KE7xSN51c(afBU6_O{2g^?%!iD>)7G=S0Vdt&vE|k?SeQzU>baa^+ zd3;D_JgBpb<|e3zJ}6*UX*xeoLIlv>UH4jRC5G%(ucx~J`QSNLZxC&r`0D3DKZjwD z-hTUp7y1O7^@GfAw3uch$qEPhTw6I?As|#A97|dsei_ z2WzBcDK%OrmTqzS$H0CE!!ut)0^lPNpmXl?;45WkAJwCjAj;*eJHP24Q4Ea+Og5Zs zKd@Wy^akj358M(*f1=#11`T(>{eSET<`9ab11s@>a1jcea~uX}=8gUjZV3Q!u+IEf z%;&#w|4M!5J9O3x3hVuKrDI2SbcKk(mhUhXl@I<(PNdi3t-8y^?aMo`;^%x8Ix^pO$h zx9dyV*_NAn6$^}F*Y|sp6LN4H#@@oa9z1HcxM;;GF!?b^)=Oem-u1p~p840DH2kgJ zhXJPXO{6`?mSis!G88tVZUi0E+Mf12bBET_^dN6x&{`Q z^&exhiV|F2kp>P0YXp9g&sOXAKHJEi_S*Gmx6EnowGA~_K}-tf*(Vua>1J@DDGo_s zRA-I(uJ-YA^ybnNBpXM77dywQzY#e7V2c=^C34)5CL1(3x$wc z^gt>Px1Be(ie5T*F9=Ite|jTe^3-E_VL3g2tQBn%PLfU_dAU8wr)K9Gx#=Ws&#iC) z>%(ExG0i`0Y&FRCeBGT7OfXLa!#wgwf5;8%?z4Ees3w;hiH4{dqr1SI6ae>cZoBAS z9)Sa%%w_y1J}LVt5Y8s2H^=~h%hdRT6F74e3mDewUvZOD;}=~b=uzcdt>ZDNsdA3TX35qu_PsavK2MNfP-n67IL-V3meWk_ z-G(uPLSAtjX$=mKo_aD~LGy|_h}4g-C2oEj6YVyPMbD0tLO-`#S}v;B^SpTCt|An7Xa6MhMR;fj zFtr_-AF;`)*2!W*Pap|r4YiEUao(@EV26Wyoj!8=B;|YZWL1{UYR7f+a&a^a{+r6Zo@yv{ewF zY?o`ym3#R46q4QXW&%y7ITF7wxMX$bi6O)~yP`D}wwEV3vNHz}8w%I7tgR^__HOD0 zesoK|wzs=k%DtPq&~uDdv7b~7mFF5DV5U}8O}O<4&%S>m4npb7B4&QyKMp--)aH+^ z%lP`#On;w-`epZanv)2jHMR8Ede)Whw(BjMmb#2cl~Yf+u#Bv3)TaNc9tv=@H&Tn% z?rU#uD-NhVGN>m#5^qr{E~=IY$qafbE{lS2B2YE(3 zzgn()v}3T_Q;@JytbpHNE$2=r3SjP5I6CDDk$dqcCR5sOBZWt_({J6$%!(J#uZ^y| z80?n53{f8M?ZHbKgga_j&J7eevP+riWNp+Q$K-c5Hj`F3vQy^S~-iNDH)H`eGZS5~LjEpHP{X zjS|)UGv37)d-@3QW5lx9Pb??r&g>r+FMWQ$RGqn!79tVfQjrQqN!VioQSCahFnE?? zm<+;fl@6!k?ZM}vPCabPV2wi_OdVst!jzzs>nihbUS2BWdS8rZBS%!m`P!rVztWeD ziHiqnEj{o{eSNOtMui|NOUGm>s}H4%xz3d2?);$uxAED9nbjDjd)ptQI-q+sm ztR*OiXcwl$CX|~pPMJ<$nU+Z98F&n#d>OKo^8d9Wev=2<G_dzuELk{RJ@G3C1#gTrgZTRAODfYD&0lUO@(uiaqg3N9`9yr z=+g5SEa_7St~ZKlrtWba{6RR*x@aiJ(3RQ@6A|T0sj+8fKe?JUTu{1vZ{?vu`gC>1 z$w49Lp9x#WZ^k!>ESbHTyxI&EImgv~x`+GlRX$<4(hBXO3;f+cUr!6tR7Prbdkj%* z{zTowr4x;TXEIa%w+=qVRXg+BUa@K%=vzD--~GgNklj*lT`?(9geIZijV(Pjrw@E| z-ZhHzj9_dTomX!a7Kp#OUqj;D6St9k>m1wq6K@)?U?NuS9$?sr)w)RLfeyCHo9@~ ziFr~|-Rnd4Lwq7OS8om*-w;B>?e07&CVloXCrJIBPcrV_sunM6c&Z z2uIm6;;gXB`h72R89L|E40tHBo=3K~V8ue05C&ZuVtx@%xw6csgAe--CWwL-ro@On zFxFK$RbV8d4nlFRm8$m?UH0r0(rfzGTXi0CyL2S_XZ>+EoXOw2Zs|T~6C!Q&GDp z6D8Sol+$~|O?cm%*Nk7|!sy__g+Idx-rPe>_Hg2%Ts;O*z^vG_#7(pr!2edHhhnsa l_dkmC{{|1`syYLx0Emgimc>Z^Rd{$00BUMu@*3iU{TDNii|GIW diff --git a/guides/assets/images/getting_started/template_is_missing_articles_new.png b/guides/assets/images/getting_started/template_is_missing_articles_new.png deleted file mode 100644 index 8adcfcf0d728dfa00a077f3754c24a51b363a669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21220 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

aLD!s_em6>E6s7%;;F25K6SmS1L>p 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 diff --git a/guides/assets/images/getting_started/unknown_action_new_for_articles.png b/guides/assets/images/getting_started/unknown_action_new_for_articles.png deleted file mode 100644 index f7e7464d61bfc488c786085903f16b5e053621d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4933 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 F{{eyLQV#$C diff --git a/guides/source/getting_started.md b/guides/source/getting_started.md index 850ed845478..bfc907b1fac 100644 --- a/guides/source/getting_started.md +++ b/guides/source/getting_started.md @@ -769,115 +769,61 @@ Nice! TIP: To learn more about routing, see [Rails Routing from the Outside In]( routing.html). -### Laying down the Groundwork +### Creating a New Article -Firstly, you need a place within the application to create a new article. A -great place for that would be at `/articles/new`. With the route already -defined, requests can now be made to `/articles/new` in the application. -Navigate to and you'll see a routing -error: +Now we move on to the "C" (Create) of CRUD. Typically, in web applications, +creating a new resource is a multi-step process. First, the user requests a form +to fill out. Then, the user submits the form. If there are no errors, then the +resource is created and some kind of confirmation is displayed. Else, the form +is redisplayed with error messages, and the process is repeated. -![Another routing error, uninitialized constant ArticlesController](images/getting_started/routing_error_no_controller.png) - -This error occurs because the route needs to have a controller defined in order -to serve the request. The solution to this particular problem is to create -a controller called `ArticlesController`. You can do this by running this -command: - -```bash -$ bin/rails generate controller Articles -``` - -If you open up the newly generated `app/controllers/articles_controller.rb` -you'll see a fairly empty controller: +In a Rails application, these steps are conventionally handled by a controller's +`new` and `create` actions. Let's add a typical implementation of these actions +to `app/controllers/articles_controller.rb`, below the `show` action: ```ruby class ArticlesController < ApplicationController -end -``` + def index + @articles = Article.all + end -A controller is a class that is defined to inherit from -`ApplicationController`. -It's inside this class that you'll define methods that will become the actions -for this controller. These actions will perform CRUD operations on the articles -within our system. + def show + @article = Article.find(params[:id]) + end -NOTE: There are `public`, `private` and `protected` methods in Ruby, -but only `public` methods can be actions for controllers. -For more details check out [Programming Ruby](https://ruby-doc.org/docs/ProgrammingRuby/). - -If you refresh now, you'll get a new error: - -![Unknown action new for ArticlesController!](images/getting_started/unknown_action_new_for_articles.png) - -This error indicates that Rails cannot find the `new` action inside the -`ArticlesController` that you just generated. This is because when controllers -are generated in Rails they are empty by default, unless you tell it -your desired actions during the generation process. - -To manually define an action inside a controller, all you need to do is to -define a new method inside the controller. Open -`app/controllers/articles_controller.rb` and inside the `ArticlesController` -class, define the `new` method so that your controller now looks like this: - -```ruby -class ArticlesController < ApplicationController def new + @article = Article.new + end + + def create + @article = Article.new(title: "...", body: "...") + + if @article.save + redirect_to @article + else + render :new + end end end ``` -With the `new` method defined in `ArticlesController`, if you refresh - you'll see another error: +The `new` action instantiates a new article, but does not save it. This article +will be used in the view when building the form. By default, the `new` action +will render `app/views/articles/new.html.erb`, which we will create next. -![Template is missing for articles/new] -(images/getting_started/template_is_missing_articles_new.png) +The `create` action instantiates a new article with values for the title and +body, and attempts to save it. If the article is saved successfully, the action +redirects the browser to the article's page at `"http://localhost:3000/articles/#{@article.id}"`. +Else, the action redisplays the form by rendering `app/views/articles/new.html.erb`. +The title and body here are dummy values. After we create the form, we will come +back and change these. -You're getting this error now because Rails expects plain actions like this one -to have views associated with them to display their information. With no view -available, Rails will raise an exception. - -Let's look at the full error message again: - ->ArticlesController#new is missing a template for request formats: text/html - ->NOTE! ->Unless told otherwise, Rails expects an action to render a template with the same name, contained in a folder named after its controller. If this controller is an API responding with 204 (No Content), which does not require a template, then this error will occur when trying to access it via browser, since we expect an HTML template to be rendered for such requests. If that's the case, carry on. - -The message identifies which template is missing. In this case, it's the -`articles/new` template. Rails will first look for this template. If not found, -then it will attempt to load a template called `application/new`, because the -`ArticlesController` inherits from `ApplicationController`. - -Next the message contains `request.formats` which specifies the format of -template to be served in response. It is set to `text/html` as we requested -this page via browser, so Rails is looking for an HTML template. - -The simplest template that would work in this case would be one located at -`app/views/articles/new.html.erb`. The extension of this file name is important: -the first extension is the _format_ of the template, and the second extension -is the _handler_ that will be used to render the template. Rails is attempting -to find a template called `articles/new` within `app/views` for the -application. The format for this template can only be `html` and the default -handler for HTML is `erb`. Rails uses other handlers for other formats. -`builder` handler is used to build XML templates and `coffee` handler uses -CoffeeScript to build JavaScript templates. Since you want to create a new -HTML form, you will be using the `ERB` language which is designed to embed Ruby -in HTML. - -Therefore the file should be called `articles/new.html.erb` and needs to be -located inside the `app/views` directory of the application. - -Go ahead now and create a new file at `app/views/articles/new.html.erb` and -write this content in it: - -```html -

New Article

-``` - -When you refresh you'll now see that the -page has a title. The route, controller, action, and view are now working -harmoniously! It's time to create the form for a new article. +NOTE: [`redirect_to`](https://api.rubyonrails.org/classes/ActionController/Redirecting.html#method-i-redirect_to) +will cause the browser to make a new request, +whereas [`render`](https://api.rubyonrails.org/classes/AbstractController/Rendering.html#method-i-render) +renders the specified view for the current request. +It is important to use `redirect_to` after mutating the database or application state. +Otherwise, if the user refreshes the page, the browser will make the same request, and the mutation will be repeated. ### The first form @@ -970,58 +916,6 @@ NOTE: By default `form_with` submits forms using Ajax thereby skipping full page redirects. To make this guide easier to get into we've disabled that with `local: true` for now. -### Creating Articles - -To make the "Unknown action" go away, you can define a `create` action within -the `ArticlesController` class in `app/controllers/articles_controller.rb`, -underneath the `new` action, as shown: - -```ruby -class ArticlesController < ApplicationController - def new - end - - def create - end -end -``` - -If you re-submit the form now, you may not see any change on the page. Don't worry! -This is because Rails by default returns `204 No Content` response for an action if -we don't specify what the response should be. We added the `create` action -but didn't specify anything about how the response should be. In this case, the -`create` action should save our new article to the database. - -When a form is submitted, the fields of the form are sent to Rails as -_parameters_. These parameters can then be referenced inside the controller -actions, typically to perform a particular task. To see what these parameters -look like, change the `create` action to this: - -```ruby -def create - render plain: params[:article].inspect -end -``` - -The `render` method here is taking a hash with a key of `:plain` and -value of `params[:article].inspect`. The `params` method is the object which -represents the parameters (or fields) coming in from the form. The `params` -method returns an `ActionController::Parameters` object, which -allows you to access the keys of the hash using either strings or symbols. In -this situation, the only parameters that matter are the ones from the form. - -TIP: Ensure you have a firm grasp of the `params` method, as you'll use it fairly regularly. Let's consider an example URL: **http://www.example.com/?username=dhh&email=dhh@email.com**. In this URL, `params[:username]` would equal "dhh" and `params[:email]` would equal "dhh@email.com". - -If you re-submit the form one more time, you'll see something that looks like the following: - -```ruby -"First Article!", "text"=>"This is my first article."} permitted: false> -``` - -This action is now displaying the parameters for the article that are coming in -from the form. However, this isn't really all that helpful. Yes, you can see the -parameters but nothing in particular is being done with them. - ### Saving Data in the Controller Back in `ArticlesController`, we need to change the `create` action