form_"for"에서 데이터베이스에 있는 항목에서 선택하십시오.

5878 단어 formRails
form_for에서 종류를 선택할 때 사용자는 기존의 것 중에서 종류를 선택합니다.이런 상황에서 우리는 기존의Category 모델 중에서 하나를 고르려고 한 방법을 총괄했다.
단도직입적으로 말하면,collectionselect 방법을 사용하세요!!
view
new.html.erb
<%= form_for(@post) do |f| %>
   <%= f.label:title %>
   <%= f.text_field:title %>

   <%= f.label:content %>
   <%= f.text_field:content,size:50 %>

   <%= fields_for :category ,(@categroy) do |category| %>

   <%= category.label:category %>
   <%= category.collection_select :category, Category.all, :id, :category %>

   <% end %>

   <%= f.submit "提出する" %>



   <% end %>
이것은 좀 번거롭다. 주의해야 할 것은
new.html.erb
   <%= fields_for :category ,(@categroy) do |category| %>

   <%= category.label:category %>
   <%= category.collection_select :category, Category.all, :id, :category %>

위에 있어요.HTML은 다음과 같습니다.

<label for="category_category">Category</label> 
 <select name="category[category]" id="category_category">
<option value="5">Ruby</option> 
<option value="6">Html</option> 
<option value="7">bootstrap</option> 
<option value="8">学習法</option></select> 
collection 방법의 참조는 다음과 같다.
collection_select (대상 이름, 속성 이름, 대상 배열,value 속성 항목, 텍스트 항목 [, 선택 가능])
여기서 하는 말,fields'for' 아래에 대상 이름이 필요하지 않습니다.따라서 속성 이름의 설정이 상술한 경우 오류가 발생할 수 있습니다. (그럴 수도 있습니다.)사실 내가 너에게 주고 싶은 것은 id이고, select name도 category[id]지.
그러므로
new.html.erb
   <%= fields_for :category ,(@categroy) do |category| %>

   <%= category.label:category %>
   <%= category.collection_select :id, Category.all, :id, :category %>


<label for="category_category">Category</label> 
 <select name="category[id]" id="category_id">
<option value="5">Ruby</option> 
<option value="6">Html</option> 
<option value="7">bootstrap</option> 
<option value="8">学習法</option></select> 
수정되었습니다.속성 명칭은form을 보내는 상자 안의 속성을 뜻합니다.
이번에는 category라는 상자에 어떤 배열에 넣어서 보냈어요.
다음은 옵션에 대한 배열을 드리겠습니다.이번에는 Category 모형의 배열입니다.제출할 항목과 표시할 항목을 선택합니다.
이번에는 categorty 속성을 표시하고 실제 Post로 보낼 때 id를 보내고 싶어서 상술한 순서가 되었습니다.
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"cIqdAA0MBoYcwzFPItmGZ21tLFdxsJB2lWmkNYQccn7rg8uhO/xImAA1h8+rf4/XC7KtEx4WBdmislBNzcsdcddA==", "post"=>{"title"=>"vf", "content"=>"vffv"}, "category"=>{"id"=>"7"}, "commit"=>"提出する"
매개 변수가 실제로 [:category][:id]-]7을 보냈습니다.재미있다.
실제 선택은 다음과 같다.

이렇게
1. 선택 항목과 실제 발송 값을 변경할 수 있습니다
2.collection_select를 통해 데이터베이스에서 선택을 끌어냅니다
그렇습니다.
그게 다야.

좋은 웹페이지 즐겨찾기