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