0

我有一个简单的应用程序,允许用户创建“项目”。在 _form 上,它要求的唯一数据是 'content' 和 'user_id',它们目前是一个数字选择器,用于将 user_id 分配给项目以获得所有权。但我想要做的是让表单假设 user_id 是当前用户的 ID(使用设计)。这样其他人就不能将“项目”分配给其他用户。说得通?这是表格。

_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 回答