繁体   English   中英

在我的 rails 应用程序中为用户创建汽车的问题

[英]Issue creating a car for a user in my rails app

我很新,还在学习。 我正在从事的项目是为一个用户设置许多汽车,而汽车属于一个用户。

class User < ApplicationRecord
    validates :name, presence: true, uniqueness: true
    has_secure_password 
    has_many :cars

end

class Car < ApplicationRecord
  belongs_to :user
end

我的流程设置为用户登录后可以创建车辆的位置。 但是,我在创建汽车时遇到了麻烦,因此它会附加到用户身上,并且每次尝试不同的方法时都会出错。

 def create
        @car = Car.new(car_params)
        @user = User.find(params[:id])
        @car.save
        redirect_to user_path
    end


 private
    def car_params
        params.require(:car).permit(:user_id, :make, :model, :color)
    end

我的架构似乎设置正确

create_table "cars", force: :cascade do |t|
    t.string "make"
    t.string "model"
    t.string "color"
    t.integer "user_id", null: false
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    t.index ["user_id"], name: "index_cars_on_user_id"
  end

但同样,我显然做错了,我无法在网上找到答案。

好吧,如果您有登录名,那么您可能已经设置了current_user 记录的一个。 在控制器上的 create 方法中,您可以使用登录用户设置汽车信息,例如:

def create
  @car = Car.new(car_params)
  @car.user_id = current_user.id
  @car.save
  redirect_to user_path
end

如果您有关于登录用户的信息,您还可以从car_params删除:user_id

如果您没有current_user或任何方法来创建登录用户,则需要通过 HTML select 或类似方式在表单内选择用户,然后您可以将:user_id保留在car_params中,然后删除关于在@car 上设置 user_id 以保存的行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM