如何在Rails中自动设置字段

时间:2017-09-21 19:17:43

标签: ruby-on-rails

我有一个简单的反馈表单,允许用户发送反馈。控制器:

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设置电子邮件字段(当他访问反馈表单时 - >电子邮件应该已经填写了。如果用户没有登录到站点,那么这个字段应该是空的。我应该把这个逻辑放在哪里?谢谢!

1 个答案:

答案 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}"}