2016-03-02 76 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 
相关问题