user_id rails的product.number

时间:2017-10-11 10:01:48

标签: ruby-on-rails ruby ruby-on-rails-5

我对rails有疑问。

我有一个用户控制器, 我有一个产品控制器。

我在产品中有一个用户ID引用:db。

如何将User.product编号放入Html?

1 个答案:

答案 0 :(得分:0)

首先,您需要配置devise gem以对您的用户模型进行身份验证,以将user_id列添加到您的product表中。

rails g migartion add_user_id_to_products user_id:integer:index

在您的用户模型中

 class User < ApplicationRecord

    has_many  :products
 end

在您的产品型号中

 class Products < ApplicationRecord

 belongs_to :user

 end

由于您的用户和产品通过has_many和belongs_to关联。 您可以在产品控制器中进行以下操作

 class ProductsController < ApplicationController

  def index

 @products = Product.all 
end

def new

  @product = Product.new

end

  def create
    @product = current_user.products.build(product_params)


    if @product.save

     redirect_to edit_product_path(@product), notice: "Saved..."



    else
         render :new 

    end

  end


private


def product_params
    params.require(:product).permit( :title, :description, :category)
end

end

如果数据成功保存到数据库中,您会发现products表的user_id列填充了current_user的id。

获取特定用户的所有产品

在您的用户控制器中显示操作

def show

 @user_products = @user.products

end

@user_products将拥有属于相应用户的所有产品。