루비온레일즈(Ruby on rails) 뷰헬퍼(view helper) Top4 사용법
-
Upload
junghyun-park -
Category
Engineering
-
view
76 -
download
0
Transcript of 루비온레일즈(Ruby on rails) 뷰헬퍼(view helper) Top4 사용법
잠깐 짚고 넘어가는 RUBY 문법!
루비 문법을 써야하는 상태에서“문자열” 안에 문자 그대로가 아닌
변수/값 등을 넣으려면 #{} 로 감싸준 후 써준다!*주의 ! ‘ ’(작은 따음표) 는 안되고 “ ”(큰 따음표) 안에서만 가능!
“posts/destroy/post.id”
=> 문자 그대로 ~/post.id URL로 이동
=> post.id 값에 따라서posts/destroy/1posts/destroy/2
등등으로 이동
Route
URL로 넘겨주는 post의 id 값!
id: post의 id 값
주의! :posts / :destroy 지만:post.id가 아니다!!!
2번째 방법 – 컨트롤러와 액션을 명시
<a> 와<%= link_to %>는 같다.
<%= link_to %> 에 class를 줄땐?
<%= link_to ‘텍스트’, ‘URL’, class: “link” %>*순서 중요!
link_to 꾸미기1 – class 주기
<%= link_to %> 태그가 넣는 법
link_to 꾸미기2 – 여러 태그 넣기
<%= link_to ‘텍스트’, ‘URL’, class: “hi” do %><~원하는 html tag~>
<% end %>
‘URL’ ‘class’
뷰헬퍼로 app/assets/images 에 있는 사진을 쓰려면..
assets
images
lion.png images 폴더 안에 있는이미지의 이름만 쓰면
알아서 경로를 찾아 줌!
<%= form_tag %> 태그엔 반드시..!
<%= form_tag(“URL”, method: “post/get”) do %>
정보 보낼 주소 방법 input들을감싸니까 do
<% end %>
app/controllers/application_controller.rb
Form 태그에서 날라온 값들 중에authenticity_token 이름으로
정확한 값이 날라왔는지 확인해줌!
html <from> 태그는 토큰 값을 자동으로 만들어 주지 못해서일단 주석 처리하고 작업 했던 것임..!
<%= form_tag %>를 쓰면 토큰 input을 자동 생성해줘서 해결!
<input> 태그엔 반드시..!
두 번째 값으로 오는 건input의 value=“” 속성을 의미
즉, 처음부터 기본 값이 들어가게 할 때 설정!안 할꺼면 nil, 할꺼면 “기본값” 이렇게 쓰기
<%= form_for 테이블row값, url: post_create_path, method: “post” do |f| %>
<% end %>
테이블의 1개의 row 값 어떻게 가져오더라..?
id title content
1 첫번째 와우!
2 제목이다 멋사짱짱
3 아나 두근두근
4 멋쟁이 사자처럼
테이블의 1개의 row 값 어떻게 가져오더라..?
posts
Post.find(1)
id title content
1 첫번째 와우!
2 제목이다 멋사짱짱
3 아나 두근두근
4 멋쟁이 사자처럼
테이블의 1개의 row 값 어떻게 가져오더라..?
posts
Post.find(2)
id title content
1 첫번째 와우!
2 제목이다 멋사짱짱
3 아나 두근두근
4 멋쟁이 사자처럼
테이블의 1개의 row 값 어떻게 가져오더라..?
posts
Post.new
<%= form_for 테이블row값, url: post_create_path, method: “post” do |f| %>
<% end %>
테이블의 1개의 row 값 어떻게 가져오더라..?
id title content
1 첫번째 와우!
2 제목이다 멋사짱짱
3 아나 두근두근
4 멋쟁이 사자처럼
posts 테이블에 row를 추가 하는 form
<%= form_for Post.new, url: post_create_path, method: “post” do |f| %>
<% end %>
테이블의 1개의 row 값 어떻게 가져오더라..?
id title content
1 첫번째 와우!
2 제목이다 멋사짱짱
3 아나 두근두근
4 멋쟁이 사자처럼
posts 테이블에 row를 추가 하는 form
<%= form_for Post.find(3), url: post_create_path, method: “post” do |f| %>
<% end %>
id title content
1 첫번째 와우!
2 제목이다 멋사짱짱
3 아나 두근두근
4 멋쟁이 사자처럼
posts 테이블에 row를 수정 하는 form
<%= form_for Post.find(3), url: post_create_path, method: “post” do |f| %>
<% end %>
<%= f.text_field :title %>
<%= f.text_filed :content %>
<%= f.submit %>
각 input이Posts 테이블의 어떤 column 값에해당하는지 :column이름 으로 써준다!
그러면 알아서 Post.find(3)에 있는해당 값들이 input에 들어간다..!
<%= form_for Post.new, url: post_create_path, method: “post” do |f| %>
<% end %>
<%= f.text_field :title %>
<%= f.text_filed :content %>
<%= f.submit %>
데이터를 새로 만들 때도 똑같이!
<%= form_for @post, url: post_create_path, method: “post” do |f| %>
<% end %>
<%= f.text_field :title %><%= f.text_filed :content %><%= f.submit %>
보통은 컨트롤러/액션에서 변수로 테이블의 row 값을 선언해줌..!
@post = Post.new
컨트롤러/액션
뷰
@post = Post.find(params[:id])또는
*form_for로 보낸 값은 적용된 모델이름의 hash 안에 담겨서 보내진다!
<%= form_for @post, url: post_create_path, method: “post” do |f| %>
<% end %>
<%= f.text_field :title %><%= f.text_filed :content %><%= f.submit %>
Post.new
Submit 버튼을 누르면..!
post_create 경로로{“post” => {“title” => “title input에 적은 값”, “content” => “content input에 적은 값”}} 식의 hash를 보냄
따라서 params[:post]로 hash를 먼저 받아주고, 그 hash 안에서 또 값을 꺼내준다.
@post = [email protected] = params[:post][:title]@post.content = params[:post][:content]@post.save
Posts 컨트롤러 create 액션
[:title], [:content]를 또 한번 써줘야 함!
이렇게 작성 해주는건, 이후에 Strong Parameter 라는 개념을 쓰기 위함…