form_with 방법
5364 단어 Rails
_form.html.erb
<%= form_with(model: モデルのインスタンス) do |form| %>
//省略
<% end %>
form_with는 보기 조수의 일종이다.뷰 도우미는 Rails에서 준비된 HTML을 생성하는 방법입니다.
다음 HTML은 다음과 같습니다.
<form action="/tasks" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="qbu8RFLhyCuAElg1qr7MLYDEdiEINJdEe1JLQFLr7kyWPFiHCEZKszOrvwON33s9CqGz7njGpBasOzrpYkb8/w==">
<div class="task_name">
<label for="task_name">タスク名</label>
<input type="text" name="task[task_name]">
</div>
<div class="task_content">
<label for="task_content">内容</label>
<input type="text" name="task[content]">
</div>
//省略
<input type="submit" name="commit" value="Create Blog" data-disable-with="Create Task">
</form>
뷰 도우미를 사용하여 다음과 같이 설명할 수 있습니다._form.html.erb
<%= form_with(model: @task, local: true) do |form| %>
<div class="task_name">
<%= form.label :タスク名 %>
<%= form.text_field :task_name %>
</div>
<div class="task_content">
<%= form.label :内容 %>
<%= form.text_field :content %>
</div>
<%= form.submit %>
<% end %>
form_with 방법은 모델 클래스의 실례를 통해 모델 옵션의 매개 변수로 사용해야 합니다.form_with는 모델 실례를 바탕으로'form을 보내면 어떤 요청을 보낼지'를 확인합니다.
이번 예를 들면...
<%= form_with(model: Task.new) %>
의 설명에 의하면form_with는 POST에서/tasks URL을 재생하는 HTTP 메서드를 자동으로 생성합니다.
이 탑sk.new는 컨트롤러에
@task = Task.new
등의 형식으로 실례 변수에 넣기 때문에formwith는 일반적으로 <%= form_with(model: @task) %>
사용하는 방법입니다.이외에formwith 메서드는 기본적으로 ")"이 아니라 자바스크립트의 자원을 가져오려고 합니다
local: 진짜이기 때문에 HTML을 발행해야 합니다.
form 탭으로 출력해야 하기 때문에formwith 방법은
<%= %>
로 묶어야 한다.창 위젯
form.label
는 HTML의 label 태그를 만드는 방법입니다.form.text_field
예속성 (type) 을 text로 지정하고 HTML의 input 탭 (자유 입력 표시줄) 을 만드는 방법입니다.
form.submit
예submit에서 속성 (type) 을 지정하여 HTML의 input 탭 (발송 단추) 을 만드는 방법입니다.
각각 div 라벨로 괄호를 치는 것은 줄을 바꾸기 위해서이다.div 라벨, br 라벨로 묶지 않으면 가로줄이 됩니다.
Reference
이 문제에 관하여(form_with 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mofuko0213/items/68ab508814a401fd16bd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)