gpt4 book ai didi

mysql - 如果用户创建,Rails 会创建记录

转载 作者:行者123 更新时间:2023-11-29 21:00:23 25 4
gpt4 key购买 nike

如果新用户注册,会自动为他创建一个 job_app 状态。整个数据库位于mysql上,我与用户模型中的问题没有任何关系(仅验证和has_one)问题是job_apps中带有user_id的新记录= current_user.user_id 不会创建(我真的不知道该怎么做)。

class UsersController < ApplicationController
include job_apps_helper
def new
@users = User.new
end

def create
@user = User.new(user_params)
if @user.save
session[:user_id] = @user.id
current_user = @user.id

redirect_to '/status'
else
redirect_to '/signup'
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :email, :PESEL, :phone, :cv, :password)
end
end


class JobAppsController < ApplicationController
before_action :require_user, only: [:index]
before_action :require_emp, only: [:empl]
#def new
# @job_app = job_app.new
#end

def index
@users = User.includes(:job_apps)
end
def empl
@users = User.all.where(:user_type => 'candidate')
end

end
class JobApp < ActiveRecord::Base
belongs_to :user dependent: :create, :destroy
enum status: [ :waiting, :accepted , :refused ]
def accept
self.update(status: 1)
end
def refuse
self.update(status: 2)
end
end
end

我的路线:

root 'stat_page#home'
get 'status' => 'job_apps#index'
get 'stat_emp' => 'job_apps#empl'
get 'login' => 'sessions#new'
post 'login' => 'sessions#create'
delete 'logout' => 'sessions#destroy'
get 'logout' => 'sessions#destroy'
get 'signup' => 'users#new'
resources :users

最佳答案

您应该使用 callback在您的用户模型上。

class User < ActiveRecord::Base
after_save :create_job_app

def create_job_app
JobApp.create(status: 0, user_id: self.id)
end
end

关于mysql - 如果用户创建,Rails 会创建记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37283160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com