복붙노트

[RUBY-ON-RAILS] 누군가가 명확하고 간단한 용어 나에게 collection_select를 설명 할 수 있습니까?

RUBY-ON-RAILS

누군가가 명확하고 간단한 용어 나에게 collection_select를 설명 할 수 있습니까?

나는 collection_select에 대한 레일 API 문서를 통해 갈거야 그리고 그들은 지독한이다.

제목은 이것이다 :

collection_select (객체 방법, 컬렉션 value_method, text_method 옵션 = {} = {} html_options)

그리고 이것은 그들이 제공하는 유일한 샘플 코드는 다음과 같습니다

collection_select (: 포스트 : author_id, Author.all : ID : name_with_initial, => 진정한 프롬프트)

누군가가 간단한 연결을 사용하여 설명 할 수 (사용자 has_many 계획 말을하고, 계획은 사용자에 속하는), 제가 구문에 왜 사용하려면?

편집 1 : 그것은 form_helper 또는 일정한 형태의 내부 작동 방식을 설명하는 경우 또한, 좋지 않을까. 당신은 웹 개발을 이해하지만, 레일에 '비교적 새로운'는 웹 개발자에게이 설명되어 있습니다 상상 해보세요. 당신은 어떻게 설명 할 것인가?

해결법

  1. ==============================

    1.

    collection_select(
        :post, # field namespace 
        :author_id, # field name
        # result of these two params will be: <select name="post[author_id]">...
    
        # then you should specify some collection or array of rows.
        # It can be Author.where(..).order(..) or something like that. 
        # In your example it is:
        Author.all, 
    
        # then you should specify methods for generating options
        :id, # this is name of method that will be called for every row, result will be set as key
        :name_with_initial, # this is name of method that will be called for every row, result will be set as value
    
        # as a result, every option will be generated by the following rule: 
        # <option value=#{author.id}>#{author.name_with_initial}</option>
        # 'author' is an element in the collection or array
    
        :prompt => true # then you can specify some params. You can find them in the docs.
    )
    

    아니면 예를 들어 다음과 같은 코드로 표현 될 수있다 :

    <select name="post[author_id]">
        <% Author.all.each do |author| %>
            <option value="<%= author.id %>"><%= author.name_with_initial %></option>
        <% end %>
    </select>
    

    이것은하지만 FormOptionsHelper에서의 FormBuilder 설명되어 있지 않습니다

  2. ==============================

    2.나는 선택 태그 자신의 순열에 많은 시간을 할애 하였다.

    나는 선택 태그 자신의 순열에 많은 시간을 할애 하였다.

    collection_select는 개체의 컬렉션에서 선택 태그를 작성합니다. 이 점을 염두에 유지,

    객체 : 객체의 이름입니다. 이 태그의 이름을 생성하는데 사용되며, 상기 선택된 값을 생성하는데 사용된다. 이것은 실제 객체 또는 상징이 될 수 있습니다 - 후자의 경우에, 그 이름의 인스턴스 변수하여 ActionController의 결합에 대한 검색됩니다 (이다 : 컨트롤러에 @post라는 인스턴스 VAR에 대한 포스트 모습을.)

    방법 : 메서드의 이름입니다. 이것은, 즉 .. 태그의 이름을 생성하기 위해 당신이 선택에서 얻을하고자하는 객체의 속성을 사용

    모음 : 개체의 컬렉션

    value_method : 컬렉션 오브젝트마다,이 방법은 값을 사용

    text_method : 컬렉션 오브젝트마다,이 방법은 텍스트 디스플레이에 사용

    선택적 매개 변수 :

    옵션 : 당신이 통과 할 수있는 옵션을 선택합니다. 이러한 제목 옵션에서 여기에 설명되어 있습니다.

    html_options : 무엇이든은, 여기에 전달되는 간단하게 생성 된 HTML 태그에 추가됩니다. 당신은 클래스, ID 또는 다른 속성을 제공하려면, 여기 간다.

    귀하의 관계는 다음과 같이 작성할 수 있습니다 :

    collection_select (: 사용자 : plan_ids, Plan.all : 아이디, 이름, {이 : 프롬프트 => 사실, : 여러 => TRUE})

    예를 들어 form_for, 내에있는 모든 태그에, 아주 간단한 용어로 다시 form_for를 사용에 관해서. f.text_field, 당신은 첫 번째 (객체) 매개 변수를 제공 할 필요성을 해달라고. 이것은 form_for 구문에서 가져옵니다.

  3. from https://stackoverflow.com/questions/8907867/can-someone-explain-collection-select-to-me-in-clear-simple-terms by cc-by-sa and MIT license