3
我有一個項目模型。它的一個零售商店。無法在項目中編輯項目錯誤NoMethodError#編輯
當在一個項目視圖即時通訊。讓我們說物品ID 11.然後我點擊編輯按鈕。我收到以下錯誤
任何人都有任何線索?任何幫助將不勝感激。
NoMethodError in Items#edit
undefined method `errors' for nil:NilClas
<% if @user.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(@user.errors.count, "error") %>.
</div>
<ul>
下面是我的編輯按鈕是在項目視圖
<!-- right column -->
<div class="col-lg-6 col-md-6 col-sm-5">
<div class = "itemtitle"><%= @item.title %> </div>
<div class = "price">$<%= @item.price %> </div>
<%= link_to "Edit Items", edit_item_path(@item) %>
<div class="productFilter productFilterLook2">
<div class="filterBox">
<select>
<option value="strawberries" selected>Quantity</option>
</select>
</div>
這裏是我的項目控制器。
class ItemsController < ApplicationController
def index
@items = Item.paginate(page: params[:page])
end
def new
@item = Item.new
end
def edit
@item = Item.find(params[:id])
end
def show
@item = Item.find(params[:id])
end
def update
if @item.update(pin_params)
redirect_to @item, notice: 'Item was successfully updated.'
else
render action: 'edit'
end
end
def create
@item = current_user.items.build(item_params)
if @item.save
redirect_to @item
flash[:success] = "You have created a new item"
else
flash[:danger] = "Your item didn't save"
render "new"
end
end
def destroy
@item.destroy
respond_to do |format|
format.html { redirect_to items_url, notice: 'Item was successfully deleted' }
format.json { head :no_content }
end
end
private
def item_params
params.require(:item).permit(:title, :price, :description, :image)
end
end
_error_messages.html.erb
<% if @user.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(@user.errors.count, "error") %>.
</div>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
我剛剛添加@user = User.find(params [:id])它。現在它可以工作。 瘋狂的事情是我之前由於某種原因沒有工作。現在所有好的 謝謝。 – joeyk16
@ joeyk16對'Item'實例使用'@ user'對象沒有任何意義。使用'@ item.errors.any?' – Pavan
@Pavan是的,我同意你的看法。我可以在我的_error_messages.html.erb中看到它。如果我改變@ item.errors.any?它會阻止其他工作。 – joeyk16