Controller
Strong Parameter
:๋๋ ํ ๋น ์ทจ์ฝ์ฑ์ ๋ํ ํ์ดํธ ๋ฆฌ์คํธ ๋์ฑ ๋ฐฉ๋ฒ์ด๋ค.
๋๋ ํ ๋น ์ทจ์ฝ์ฑ : ์ ์์ ์ธ ์ฌ์ฉ์๊ฐ ์์ ์ ๊ณ์ ์ ๊ด๋ฆฌ์ ๊ถํ์ ๋ถ์ฌํด ์์คํ ์ ์กฐ์ํ ์ํ์ด ์์.
require
๋ฉ์๋๋ ์ง์ ๋ ๋ชจ๋ธ์ ํค๊ฐ ์กด์ฌํ๋์ง ํ์ธ ํ ์กด์ฌํ๋ฉด ํด๋น ๊ฐ๋ค์ ๋ฆฌํดํ๊ณ , ์กด์ฌํ์ง ์์ผ๋ฉดActionController::ParameterMissing
์์ธ๊ฐ ๋ฐ์ํ๋ค.permit
๋ฉ์๋๋ ๋ชจ๋ธ์ ์ผ๊ด์ ์ผ๋ก ์ถ๊ฐํ ์์ฑ๋ค์ ํ๊ฐํ๋ ๋ฉ์๋์ด๋ค. ๋ฆฌํด๊ฐ์ผ๋ก ์ง์ ๋ ํค๋ง ํฌํจํ๋ ํด์๋ฅผ ๋ฆฌํดํ๋ค.
์ด๋ ๊ฒ Strong Parameters๋ ํ๊บผ๋ฒ์ ์ ๋ ฅํ ์ ์๋ ์์ฑ๋ค์ ํํฐ๋งํ๋ฏ๋ก ์ ์์ ์ธ ์ฌ์ฉ์๊ฐ ๊ฐ์ ์์๋ก ๋ฃ๋ ๊ฒ์ ๋ฏธ์ฐ์ ๋ฐฉ์ง ํ ์ ์๋ค.
Filter
: ์ก์ ๋ฉ์๋๊ฐ ์คํ๋๊ธฐ ์ด์ ๊ณผ ์ดํ์ ๋ถ๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ํด์ ์ฌ์ฉํ๋ค. ์ปจํธ๋กค๋ฌ ์ ์ฒด์ ์ ์ฉ๋๋ค.
before & after filter(์ ,ํ ์ฒ๋ฆฌ)
around filter(์ ํ์ฒ๋ฆฌ ํ๋ฒ์)
filter ์ ์ฉ ๋ฒ์ ์ง์
: ํํฐ๋ ํด๋น ์ปจํธ๋กค๋ฌ + ํ์๋ ์ปจํธ๋กค๋ฌ๋ ์ ์ฉ๋๋ค.
only์ except ์ต์
( ํํฐ ์ ์ฉ๋ฒ์ ์ ํ)
only
๋ ์ง์ ํ ์ก์
์๋ง ํํฐ๋ฅผ ์ ์ฉ, except
์ต์
์ ์ง์ ๋ ์ก์
์ ํํฐ ์ ์ฉ์ ์ ์ธ.
์ด ์ต์ ๋ค์ ์ต๋ํ ์ ๊ฒ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํ๋ค. ๋ง์ด ์ฌ์ฉํ๊ฒ๋๋ฉด ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ณ ๋๋ฒ๊ทธํ ๋๋ ๋ฌธ์ ๋ฅผ ์ฐพ๊ธฐ ํ๋ค์ด์ง๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ปจํธ๋กค๋ฌ ๋ชจ๋ ์ก์ ์ ๊ณตํต์ ์ผ๋ก ์ ์ฉํ ์ ์๋ ๋ถ๋ถ์ ์ต๋ํ ํํฐ๋ก ์ ์ฉํ๊ณ , ๋ค๋ฅธ ๋ถ๋ถ์ ๊ฒํ ํด๋ผ.
skip_xxxxx_action (์์ํ ํํฐ๋ฅผ ์ ์ธ)
Resource
: CRUD ํ ์ ์๋ ์ ๋ณด๋ผ๊ณ ์๊ฐํ๋ฉด ์ข๋ค.
resources
๋ ์ฌ๋ฌ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ RESTful ์ธํฐํ์ด์ค ์์ฑ, resource
๋ ํ๋์ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ interface์์ฑ! ์ด๋ ์ฐจ์ด์ ์ resource
๋ index์ก์
์ด ์ ์๋์ง ์์์ผ๋ฏ๋ก, show,edit,delete์์ :id๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ง ์๋๋ค.
1. constraints(๋ผ์ฐํธ ๋งค๊ฐ๋ณ์ ์ ์ฝ์กฐ๊ฑด)
:id
์ ๋ผ์ฐํธ ๋งค๊ฐ๋ณ์๊ฐ ํฌํจ์ด ๋์ด์์๋ ๋ชจ๋ ๊ฐ์ ์ ๋ฌํ ์ ์์ง๋ง, ์ด๋ค ๊ฐ์ด ์ ๋ฌ๋ ์ง๋ฅผ ๋ฏธ๋ฆฌ ์๊ณ ์๋ค๋ฉด ์ด๋์ ๋ ์ ํ์ ๊ฑธ์ด๋๋ ๊ฒ์ด ์ข๋ค.
2. ์ ์ฝ ํด๋์ค ์ ์(๋ณต์กํ ์ ์ฝ์กฐ๊ฑด)
: ์ ๊ท ํํ์๋ง์ผ๋ก ํํํ ์ ์๋ ๋ณต์กํ ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ๊ณ ์ถ๋ค๋ฉด ์ ์ฝ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค.
matches?
๋ฉ์๋๋ฅผ ๋ง๋ค์ด์ฃผ๋ฉด๋๋ค. ์ด๋ ๋๊ฐ์ง ๊ท์น์ ์ง์ผ์ผํ๋ค.
๋งค๊ฐ๋ณ์๋ก ์์ฒญ์ ๋ณด(request ๊ฐ์ฒด)๋ฅผ ๋ฐ์
๋ฆฌํด ๊ฐ์ผ๋ก๋ ๋ผ์ฐํธ๋ฅผ ์ ํจํ ํ ์ง์ ๋ํ true or false ๋ฆฌํด
3. format(form ๋งค๊ฐ๋ณ์์ ๊ฑฐ)
URLํจํด์์ format์ด ์ ๊ฑฐ๋ ๋ผ์ฐํธ๊ฐ ์์ฑ๋๋ค.
4. controller & as(์ปจํธ๋กค๋ฌ ํด๋์ค,url ํฌํผ ์ด๋ฆ์์ )
5. namespace & scope (๋ชจ๋ ๋ด๋ถ ์ปจํธ๋กค๋ฌ ๋งตํ)
: ์ปจํธ๋กค๋ฌ๋ฅผ ํด๋๋ก ์ ๋ฆฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ > rails generate controller Admin::Books
๋ฅผ ํ๋ฉด controllers/adminํด๋ ์๋์ books_controller๊ฐ ์์ฑ๋๋ค. ์ด๋ RESTful์ ์ ์ํ๋ ค๋ฉด
6. collection & member(RESTful ์ธํฐํ์ด์ค์ ์ก์
์ถ๊ฐ)
7. only & except
: ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑ๋๋ ์ก์ ์ ์ผ๋ถ๋ฅผ ๋ฌดํจํ ์ํค๊ณ ์ถ์ใธ!
8. resources ์ค์ฒฉ
: ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ์์ ๊ณ์ธต ๊ด๊ณ๋ฅผ ๊ฐ๋ ๊ฒฝ์ฐ
shallow
๋ :id
๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ง ์๋ ์ก์
์ :book_id ๋งค๊ฐ๋ณ์๊ฐ ๋ถ๋๋ค.
Last updated