我有一个简单的反馈表单,允许用户发送反馈。控制器:
class FeedbacksController < ApplicationController
expose(:feedback, attributes: :feedback_params)
def create
ApplicationMailer.customer_feedback(feedback).deliver_now if feedback.save
respond_with(feedback, location: root_path)
end
private
def feedback_params
params.require(:feedback).permit(:email, :message, :name, :phone)
end
end
这里我使用的是曝光宝石。 以及它的观点:
= simple_form_for(feedback, url: feedback_path) do |f|
legend
= t(".any_questions")
.form-inputs
= f.input :name
= f.input :email
= f.input :phone
= f.input :message, as: :text
.form-actions
= f.button :submit, t(".submit")
我想要下一个:检查当前用户是否存在(登录到应用程序)如果是=然后使用user.email设置电子邮件字段(当他访问反馈表单时 - >电子邮件应该已经填写了。如果用户没有登录到站点,那么这个字段应该是空的。我应该把这个逻辑放在哪里?谢谢!
答案 0 :(得分:2)
simple form documentation解释了如何根据您的需求轻松定制简单的表单。假设您正在使用设计进行用户身份验证(如果您不是,simple_form旨在与设计一起使用,那么您应该检查它),那么您可以使用current_user来访问当前登录的用户。
我认为simple_form的input_html
会对您有所帮助:
= f.input :email, input_html: { value: "#{current_user.email if current_user}"}