[RUBY-ON-RAILS] 루비 레일에 - f.select에서 다중 선택
RUBY-ON-RAILS루비 레일에 - f.select에서 다중 선택
나는 내 양식에 다음 선택 상자를 가지고 :
Related Type: <%= f.select(:TYPE, [['Type A', 'Type A'],
['Type B', 'Type B'],
['Type C', 'Type C'],
['Type D', 'Type D'],
['Type E', 'Type E']
],{ :prompt => "Please select"}
) %>
나는 사용자가 복수의 선택을하고 또한 선택 상자 (5)의 크기를 만들 수 있도록합니다.
어떻게 위의 코드를 그렇게 할까?
해결법
-
==============================
1.후 : 예를 들어, HTML 옵션을 다른 해시를 추가 {=> "선택하세요"프롬프트}
후 : 예를 들어, HTML 옵션을 다른 해시를 추가 {=> "선택하세요"프롬프트}
<%= f.select(:TYPE, [['Type A', 'Type A'], ['Type B', 'Type B'], ['Type C', 'Type C'], ['Type D', 'Type D'], ['Type E', 'Type E'] ],{ :prompt => "Please select"}, { :multiple => true, :size => 5 } ) %>
당신이 이런 짓을하면 당신은 당신의 이동 할 수 있습니다 : prompt 옵션 (즉, HTML 속성이 레일 옵션으로 처리되지 않도록 불구} {빈을 유지합니다.)
또한 당신은 당신의 컨트롤러 코드가 제대로 받아들이고 여러 값을 처리되었는지 확인해야합니다.
-
==============================
2.모음의 경우, 시도
모음의 경우, 시도
<%= f.select(:TYPE, Categories.collect {|p| [ p.name, p.id ] }, { :prompt => "Please select"}, { :multiple => true, :size => 5 }) %>
-
==============================
3.때 나는 완전히 동작하는 예제 (객체를 편집 할 때 사전 선택을 포함) 한 :
때 나는 완전히 동작하는 예제 (객체를 편집 할 때 사전 선택을 포함) 한 :
의 형태의:
form_for(@object) do |f| = f.select :similar_ids, options_from_collection_for_select(Object.all, :id, :name, {:selected => @object.similar_ids.split(';')}), {}, {:multiple => true, :size => 4, :name => 'object[similar_ids][]'}
그리고 Object.rb 모델 :
class Object < ActiveRecord::Base before_save :handle_similars def handle_similars self.similar_ids = self.similar_ids.select(&:present?).join(';') # .select(&:present?) is necessary to avoid empty objects to be stored end def similars self.class.find(self.similar_ids.split(';')) end end
이 글은 저를 도와 :
희망이 도움이
-
==============================
4.HTML
HTML
<%= form.select(:product_ids, Product.all.collect {|p| [ p.name, p.id ] }, { :prompt => "Please select"}, { :multiple => true, :size => 5 }) %>
제어 장치
@category = Category.new(category_params) def category_params params.require(:category).permit(:name, product_ids: []) end
-
==============================
5.{: 프롬프트 => "선택하세요"}, {: 여러 => 사실 : 크기 => 5} {} 때 f.select 중요하다
{: 프롬프트 => "선택하세요"}, {: 여러 => 사실 : 크기 => 5} {} 때 f.select 중요하다
from https://stackoverflow.com/questions/4864513/ruby-on-rails-multiple-selection-in-f-select by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 3.2 레일 : Heroku가 푸시 거부, 더 세다 지원하는 응용 프로그램은 감지되지 (0) | 2020.03.01 |
---|---|
[RUBY-ON-RAILS] 레일 : LINK_TO에서 GET 쿼리 문자열 매개 변수 보존 (0) | 2020.03.01 |
[RUBY-ON-RAILS] 콘솔 libreadline 때문에로드하지 않습니다 레일 (0) | 2020.03.01 |
[RUBY-ON-RAILS] 레일 응용 프로그램에서 Omniauth-으로 OAuth2를 사용하여 토큰을 새로 고침 (0) | 2020.03.01 |
[RUBY-ON-RAILS] 강력한 매개 변수가 중첩 된 속성에 대한 모든 속성을 허용 (0) | 2020.03.01 |