[RUBY-ON-RAILS] (3) 여러 레코드와 양식을 제출 레일
RUBY-ON-RAILS(3) 여러 레코드와 양식을 제출 레일
이것은 아마 기본 질문 그래서 나는 레일에 새로운 해요. 나는 사용자가 한 번에 3 개 레코드를 만들 수있는 양식을 만들려고하고 있습니다. 한 번만 제출 버튼을 클릭해야 할에 나는 사용자를 원한다. 내 검토 모델에 이름, 코멘트 및 등급을 제출하고있다. 현재, 마지막 레코드가 데이터베이스에 입력됩니다.
<%= form_for([@user,@review]) do |f| %>
<table>
<tr>
<td>Rank</td>
<td>Name</td>
<td>Comment</td>
</tr>
<tr>
<td>1</td>
<td><%= f.text_field :name %></td>
<td><%= f.text_field :comment %></td>
<%= f.hidden_field :rating, :value=> "5" %>
</tr>
<tr>
<td>2</td>
<td><%= f.text_field :name %></td>
<td><%= f.text_field :comment %></td>
<%= f.hidden_field :rating, :value=> "3" %>
</tr>
<tr>
<td>3</td>
<td><%= f.text_field :name %></td>
<td><%= f.text_field :comment %></td>
<%= f.hidden_field :rating, :value=> "1" %>
</tr>
</table>
<div class="actions">
<%= f.submit "Create my top 3" %>
</div>
<% end %>
어떤 조언에 감사드립니다. 감사.
해결법
-
==============================
1.나는 이것에 대한 fields_for 사용하는 것이 좋습니다 것입니다 :
나는 이것에 대한 fields_for 사용하는 것이 좋습니다 것입니다 :
<%= form_for([@user, :reviews]) do |f| %> <% @reviews.each do |review| %> <%= fields_for review do |r| %> <%= render "reviews/form", :r => r %> <% end %> <% end %> <% end %>
이 일을하려면, 당신은 당신이 당신의 컨트롤러에 필요한만큼 많은 검토가 객체로 구축해야합니다 :
def new # you could also have this in a before_filter... @user = User.find(params[:id]) @reviews = Array.new(3) { @user.reviews.build } end
이 새 레코드와 다른이 사용자에 대한 검토 기록의 새로운 인스턴스를 만들 것입니다. 인스턴스는 단순히 루비 개체입니다. 세 번 user.reviews.build 이제 호출했기 때문에 @, 당신은 당신의 뷰에있는 세 개의 리뷰를 볼 수 있습니다.
def create @user = User.find(params[:id]) @reviews = Review.create(params[:reviews]) # Some more logic for validating the parameters passed in end
이 세 개의 새로운 검토 개체를 만들고 세 가지가 유효 가정 @user로 연결됩니다.
-
==============================
2.당신은 그 배열을 레일 이야기해야합니다. 첫째,이 문서의이 부분을 읽으 :
당신은 그 배열을 레일 이야기해야합니다. 첫째,이 문서의이 부분을 읽으 :
당신의 목적을 위해, 당신은 손으로 형태를 구축해야합니다 :
<%= form_tag 'foo' do %> <% [1,3,5].each do |i| %> <%= text_field_tag 'review[][name]' %> <%= text_field_tag 'review[][comment]' %> <%= hidden_field_tag 'review[][rating]', :value => i %> <% end %> <% end %>
from https://stackoverflow.com/questions/4641565/rails-3-submit-a-form-with-multiple-records by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 동적 레일에 바인딩 원시 업데이트 SQL을 실행하는 방법 (0) | 2020.02.16 |
---|---|
[RUBY-ON-RAILS] 아약스를 통해 플래시 통지를 레일 (0) | 2020.02.16 |
[RUBY-ON-RAILS] 가장 좋은 방법은 레일 + 포스트 그레스에 임의의 시간 간격으로 기록을 계산하려면 (0) | 2020.02.16 |
[RUBY-ON-RAILS] 액티브는 레일 : 현재 사용자를 제외한 모든 사용자 찾기 (0) | 2020.02.16 |
[RUBY-ON-RAILS] 레일 3.0에서 f.error_messages (0) | 2020.02.16 |