9

ユーザーが結婚式の招待状に返信する人を入力するフォームがあります。彼らは名前、メニューの選択肢を入力し、次を選択します: 出席 - はい / いいえ - 次に、ユーザーが出席または出席していない人の数を確認できるように、ラベル付きの真と偽の金額を数えます。

私の問題はテーブル自体にあります。RSVP 列が置かれている場所では、現時点で「true」または「false」を取得しています。とにかく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 %>

返信.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 %>

デシベル

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

私はRubyに非常に慣れていないので、ポインタをいただければ幸いです。どうもありがとう。

4

2 に答える 2

14

三項を使用するだけです:

reply.rsvp ? "true" : "false"

「true」と「false」を表示したい文字列に置き換えます。

于 2012-11-22T00:08:22.217 に答える