0

ユーザーが「アイテム」を作成できるシンプルなアプリがあります。_form で要求される唯一のデータは、'content' と 'user_id' です。これは現在、user_id をアイテムに割り当てて所有するナンバー ピッカーです。しかし、私がやりたいことは、user_id が現在のユーザーの ID であるとフォームに仮定させることです (Devise を使用)。そうすれば、他の人は「アイテム」を他のユーザーに割り当てることができなくなります。わかる?これがフォームです。

_form.html.erb

<%= form_for(@item) do |f| %>
  <% if @item.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@item.errors.count, "error") %> prohibited this item from being saved:</h2>

      <ul>
      <% @item.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :content %><br />
    <%= f.text_field :content %>
  </div>
  <div class="field">
    <%= f.label :user_id %><br />
    <%= f.number_field :user_id %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
4

1 に答える 1

0

モデルからの関連付けを使用する必要があります。

あなたのItemsモデルが持つべき例belongs_to :user

次に、属性:userではなくメソッドを使用します。user_id

しかし、実際にはこれをもっと簡単にすることができます。

simple_forms gem をインストールすると、作業が楽になります。

gem "simple_form"

それから

<%= simple_form_for(@item) do |f| %>

    <%= f.input :content %>

    <%= f.association :user %>

    <%= f.button :submit %>

<% end %>
于 2013-02-25T01:23:37.073 に答える