0

私のマイクロポストには、文字列である type という列があります。これは、購入または販売のいずれかです。2 つの別々の入力フォームが必要です。一方にコンテンツを入力すると (マイクロポストの作成時に) タイプとして購入が自動的に入力され、もう一方にコンテンツを入力すると自動的に販売が入力されます。.

これが私のフォームです

<%= form_for(@micropost) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to buy?" %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

最近、マイクロポスト データ テーブルの列として type を追加しました。それが(まだ)入力がない理由です。タイプを自動的に入力する方法については、上記をお読みください

それを行う1つの方法は、各フォームに何かをidすることだと考えています。次に、フォームが入力されているときに、入力されたフォームに基づいて非表示のタイプフィールドに自動的に入力するように何らかの方法で指示できます.これは可能ですか??

4

1 に答える 1

0

ここを指していると思いますhidden_fieldhidden_field情報をユーザーに提示せずにコントローラーに渡すために使用します。購入のフォームは次のとおりです。

<%= form_for(@micropost) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to buy?" %>
    <%= f.hidden_field :type, 'purchase' %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

もう1つは販売用です:

<%= form_for(@micropost) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to sell?" %>
    <%= f.hidden_field :type, 'sale' %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
于 2012-09-13T23:54:15.327 に答える