我有一个用户模型。用户可以是雇主或学生。所以有雇主模型和学生模型。它们都属于用户。只有雇主才能查看学生档案。因此,如果配置文件出现问题,雇主应该能够报告配置文件。我正在考虑报告""只有雇主才能看到的个人资料上的按钮。然后当他们点击它时,管理员(我)会收到一封电子邮件,其中包含学生的网址或ID。
目前,学生档案网址看起来像www.mywebsite.com/students/john-big
。如何设置报告按钮,以便将整个URL或用户ID(John-big)通过电子邮件发送给我。
邮件已设置好,因为我设置的方式是每次用户注册时都会收到电子邮件。我可以使用相同的逻辑来发送自己的电子邮件,但抓住ID或URL是问题所在。最好的方法是什么?
Userinfo控制器(userinfo = student):
class UserinfosController < ApplicationController
before_action :find_userinfo, only: [:show, :edit, :update, :destroy, :log_impression]
before_action :authenticate_user!
def index
end
def show
end
def new
@userinformation = current_user.build_userinfo
end
def create
@userinformation = current_user.build_userinfo(userinfo_params)
if @userinformation.save
redirect_to userinfo_path(@userinformation)
else
render 'new'
end
end
def edit
end
def update
if @userinformation.update(userinfo_params)
redirect_to userinfo_path(@userinformation)
else
render 'edit'
end
end
def destroy
@userinformation.destroy
redirect_to root_path
end
private
def userinfo_params
params.require(:userinfo).permit(:name, :email, :college, :gpa, :major)
end
def find_userinfo
@userinformation = Userinfo.friendly.find(params[:id])
end
end
雇主控制员:
class EmployersController < ApplicationController
before_action :find_employer, only: [:show, :edit, :update, :destroy]
def index
end
def show
end
def new
@employer = current_user.build_employer
end
def create
@employer = current_user.build_employer(employer_params)
if @employer.save
redirect_to userinfos_path
else
render 'new'
end
end
def edit
end
def update
if @employer.update(employer_params)
redirect_to employer_path(@employer)
else
render 'edit'
end
end
def destroy
@employer.destroy
redirect_to root_path
end
private
def employer_params
params.require(:employer).permit(:paid, :name, :company, :position, :number, :email, :emp_img)
end
def find_employer
@employer = Employer.friendly.find(params[:id])
end
end
用户模型:
class User < ActiveRecord::Base
has_one :userinfo
has_one :employer
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
acts_as_messageable
after_create :welcome_send
def welcome_send
WelcomeMailer.welcome_send(self).deliver_now
end
end
如果您需要更多信息,请与我们联系。
答案 0 :(得分:0)
我会使用request.url()
来获取您的观看网址(学生资料网址)。
尝试将此添加到您的视图中以了解它:
<%= debug("request.url: #{request.url()}") if Rails.env.development? %>
我希望这会有所帮助。