2012-11-22 2 views
3

내 사용자가 청첩장에 응답하는 사람을 입력하는 양식이 있습니다. 참석자는 이름, 메뉴 선택 사항 및 선택 항목을 입력합니다. 참석 - 예/아니오 - 레이블을 사용하여 참 및 거짓 금액을 계산하므로 참석자 수 또는 참석하지 않은 사람 수를 볼 수 있습니다.부울 출력을 루비의 문자열 값으로 변경하는 방법

내 문제는 표 자체에 있습니다. RSVP 열이 앉아있는 곳에서 나는 순간에 '참'또는 '거짓'을 얻었습니다. Ruby에서 index.html.erb의 문자열 값으로 변경할 수 있습니까?

지수

<% @replies.each do |reply| %> 
    <tr> 
    <td><%= reply.name %></td> 
    <td><%= reply.menu %></td> 
    <td><%= reply.rsvp %></td> 
    <td><%= link_to 'Show', reply, class: "btn" %></td> 
    <td><%= link_to 'Edit', edit_reply_path(reply), class: "btn" %></td> 
    <td><%= link_to 'Delete', reply, method: :delete, data: { confirm: 'Are you sure?' }, class: "btn btn-danger" %></td> 
    <td><%= reply.user.full_name %></td> 
    </tr> 
<% end %> 

reply.rb

class Reply < ActiveRecord::Base 
    attr_accessible :menu, :name, :rsvp, :user_id 
    belongs_to :user 

    def self.find_attending 
    Reply.where(:rsvp => "true").count 
    end 

    def self.find_not_attending 
    Reply.where(:rsvp => "false").count 
    end 
end 

_form.html.erb

<%= f.input :user_id, collection: User.all, label_method: :full_name, :label => 'Added By' %> 
<%= f.input :name, :label => 'Person(s) Name' %> 
<%= f.input :menu, :label => 'Menu Choice' %> 
<%= f.collection_radio_buttons :rsvp, [[true, 'Attending'] ,[false, 'Not Attending']], :first, :last %> 

DB

class CreateReplies < ActiveRecord::Migration 
    def change 
    create_table :replies do |t| 
     t.string :name 
     t.text :menu 
     t.boolean :rsvp, :default => false 

     t.timestamps 
    end 
    end 
end 

내가 루비 아주 새로운 해요, 어떤 포인터를 감상 할 수있다. 많은 감사합니다.

reply.rsvp ? "true" : "false" 

바꾸기 "true"로하고 표시 할 원하는 문자열로 "거짓"

+0

이것은 큰 질문이지만, 질문하는 데 필요한 것보다 훨씬 많은 정보입니다. 실제 Rails 코드 대신 예제 Ruby 코드를 사용하는 것이 좋습니다. – emery

답변

5

그냥 삼항를 사용합니다.

+0

그래서 나는 여기서 뭔가를 배웁니다. 참/거짓 값을 설명하고 기본적으로 여기에 표준 참/거짓 대신 페이지에 인쇄 값을 할당합니까? 그것은 진짜 대접, 고마워요! – Doidgey

+0

무슨 뜻인지 잘 모르겠습니다. 'reply.rsvp'는'true' 또는'false' (부울 값)로 평가됩니다. 삼항을 적용 할 때 값이'true'이면 다음 값 (여기서는 문자열''true '')을 반환하고, false이면':'다음에 값을 반환합니다 여기, 문자열 ""거짓 "'). –

+0

예치 나는 너무 잘 frase하지 않았지만, 지금은 감사, 이해 – Doidgey

7

어때 대략 "#{reply.rsvp}"? 더 깨끗해 보이지 않습니까?

+1

이것이 바람직하지 않은 경우 중 하나는 요리법이나 요리법을 검증하는 것입니다. Foodcritic은 때로는 이것이 'unnumcesary interpolation'이라고 불평하고 어떤 엔지니어/팀은 어떤 기준의 기준에서라도 무시할 수없는 것에 대해 매우 엄격합니다. 동의하지만. 가능하면 그렇게하는 것이 좋습니다. –

+0

나는 이것이 진짜 대답이어야한다고 생각한다. 동적 객체를 처리 할 때 템플릿 파일을 평가할 때 "객체"를 문자열 "false"로 변환하지 않으려합니다. 이것은 그 차이를 설명 할 것입니다. –

관련 문제