2016-03-02 72 views
-1

我對Rails相當陌生,而且我有一個問題,我試圖創建項目,但創建的每個項目都有user_idnil。如果我在本地主機內創建了該項目並檢查以確保它是在軌道控制檯中創建的,則會顯示user_id = nil。先謝謝您的幫助!user_id當我嘗試創建項目時爲零

用戶使用設計創建

項目控制器

class ItemsController < ApplicationController 

    def create 
    @user = User.find(params[:user_id]) 
    @item = Item.new(item_params) 
    @item.user = current_user 
    if @item.save 
     @item = Item.update_items(params[:items]) 
     redirect_to @user, notice: "Item was saved successfully." 
    else 
     flash[:error] = "Error creating item. Please try again." 
     render @user 
    end 
    end 

    private 

    def item_params 
    params.require(:item).permit(:name) 
    end 
end 

用戶控制器

class UsersController < ApplicationController 
    # before_action :authenticate_user! 

    def show 
    @user = User.find(params[:id]) 
    @item = Item.new 
    @items = @user.items 
    end 
end 
+0

此行'@user = User.find有一個適當的關聯(PARAMS [:USER_ID])'是應該誰是有史以來登錄? – MZaragoza

回答

0

我註釋掉身份驗證的before_filter這是不允許被分配USER_ID ....愚蠢的錯誤!

0
class ItemsController < ApplicationController 

    def create 
    user = current_user 
    @item = current_user.items.new(params[:items]) 
    if @item.save 
     redirect_to current_user, notice: "Item was saved successfully." 
    else 
     flash[:error] = "Error creating item. Please try again." 
     render @user 
    end 
    end 

    private 

    def item_params 
    params.require(:item).permit(:name) 
    end 
end 

確保你在你的模型

class Item < ActiveRecord::Base 
    belongs_to :user 
    ... 
end 

class User < ActiveRecord::Base 
    has_many :items 
    ... 
end 
相關問題