通过new_item表单传递User_ID

时间:2013-02-25 00:20:03

标签: ruby-on-rails ruby erb

我有一个简单的应用程序,允许用户创建'项目'。在_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 %>

1 个答案:

答案 0 :(得分: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 %>