0

私のフォームには、パブリックとプライベートの 2 つのラジオ ボタンがあります。

 <div class='review-form'>
      <%= simple_form_for(@review) do |f| %>
  # input boxes for current_user to put text here

  #'public' radio button, checked by default, class is for css
  <%= f.radio_button :visible, "true" , :class => "share_button" %>

  #'private' radio button, class is for css
  <%= f.radio_button :visible, "false", :class => "keep_private_button" %>

  #user can cancel
  <%= link_to I18n.t('write_review.cancel_button'), landing_page, 
  :class => 'btn' %>

  #user can submit
  <%= f.button :submit, I18n.t('write_review.submit_button'), 
  :class => 'btn btn-primary' %>

各レビューのラジオ ボタンが true か false かを判断し、レビューをアプリに保存した後に使用できるようにするにはどうすればよいですか?

たとえば、次のようなものです。

   <% if @review.radio_button.value = true %>
    <%= label_tag("This review is public") %>
     <% end %>

     <% if @review.radio_button.value = false %>
     <%= label_tag("This review is private") %>
     <% end %>
4

1 に答える 1

1

「他の場所」はどこですか?これはユーザーが保存した後ですか? もしそうなら、あなたはただ言うことができるはずです:

if @review.visible?

また

if review.visible?

変数のスコープに応じて。

「他の場所」が同じページを意味する場合は、賢い JavaScript が必要になります。ここでは jQuery のようなものを使用できますが、基本的には、ラジオ ボタンをクリックすると、ラジオ ボタンを評価する JavaScript 関数を起動し、ページ上の div のテキストを更新するリスナーが必要なだけです。適切に。これは非常に一般的なパターンであり、注意深い読者の演習として残します。繰り返しますが、「他の場所」が何を意味するのか正確にはわかりませんが、あなたの質問からは、前者だと思います(ユーザーが保存した後)。

それが役立つことを願っています!

于 2013-06-25T16:26:55.727 に答える