0
我有一個簡單的應用程序,允許用戶創建'項目'。在_form上,它要求的唯一數據是'content'和'user_id',它是當前的數字選擇器,它將user_id分配給所有權的項目。但是我想要做的是讓表單假定user_id是當前用戶的ID(使用Devise)。這樣其他人就不能將「物品」分配給其他用戶。合理?這是表格。通過new_item表單傳遞User_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 %>
你甚至都不需要user_ID的形式,你可以有內容text_field。在控制器中,您可以使用current_user.id來創建項目。 – Kaeros 2013-02-25 00:22:33
在您的控制器中,而不是'Item.new',使用'current_user.items.build' – jvnill 2013-02-25 00:28:35
我試圖從窗體中刪除user_id div部分,但是當我嘗試創建一個新項目時, ... NoMethodError在上述ItemsController#顯示 未定義的方法'電子郵件」的零:NilClass Rails.root:C:/網站/ railsprojects /劃傷 應用程序跟蹤|框架跟蹤|充分跟蹤 應用程序/控制器/ items_controller.rb:17:在'顯示」 請求 參數: { 「ID」=> 「10」} 顯示會話轉儲 顯示ENV轉儲 響應 集管: 沒有 – momchenr 2013-02-25 00:52:35