Ruby on rails Rails设计用于未注册用户或软用户访问联系人表单
我有一个联系表单,即使是未注册的用户(访问者)也可以访问该表单,并且会在提交联系表单时发送邮件 遵循frails和Desive,我已覆盖当前用户并验证用户!在registrations controller中,谢天谢地,它重定向到localhost:3000/访问者,但索引页没有加载,Desive抛出了一个错误:“Completed 401 Unauthorized”。如果我在application controller中粘贴与它取代registrations controller相同的方法,它甚至不加载localhost:3000,因为soft_令牌不是用户中的一列。但我不想将软用户转换为注册用户,因此不需要软令牌 我应该如何加载联系人表单 这是我的密码。蒂亚。 访客/#索引 访客/管理员Ruby on rails Rails设计用于未注册用户或软用户访问联系人表单,ruby-on-rails,devise,ruby-on-rails-5,Ruby On Rails,Devise,Ruby On Rails 5,我有一个联系表单,即使是未注册的用户(访问者)也可以访问该表单,并且会在提交联系表单时发送邮件 遵循frails和Desive,我已覆盖当前用户并验证用户!在registrations controller中,谢天谢地,它重定向到localhost:3000/访问者,但索引页没有加载,Desive抛出了一个错误:“Completed 401 Unauthorized”。如果我在application controller中粘贴与它取代registrations controller相同的方法,它
class VisitorsController < ApplicationController
def index
end
def contact
h = JSON.generate({ 'name' => params[:name],
'email' => params[:email],
'subject' => params[:subject],
'message' => params[:message] })
VisitorMailer.contact_email(@name, @email, @subject, @message).deliver_later(wait_until: 10.hours.from_now)
redirect_to :root_url, notice: "Message sent"
end
class VisitorsControllerparams[:name],
'email'=>params[:email],
'subject'=>params[:subject],
'message'=>params[:message]})
VisitorMailer。联系电子邮件(@name、@email、@subject、@message)。稍后发送(等待时间:10。小时。从现在开始)
重定向到:root\u url,注意:“消息已发送”
结束
好的,我自己解决了这个问题,就像之前的操作一样:在应用程序控制器中对用户进行身份验证,以便它应用于所有控制器。但是,使用此SO链接,我解决了它:
post 'visitors/contact', to: 'visitors#contact'
match 'visitors' => 'visitors#index', :as => :visitors, :via => :get
devise_for :users, :controllers => {registrations: "devise_override/registrations"}
class VisitorsController < ApplicationController
def index
end
def contact
h = JSON.generate({ 'name' => params[:name],
'email' => params[:email],
'subject' => params[:subject],
'message' => params[:message] })
VisitorMailer.contact_email(@name, @email, @subject, @message).deliver_later(wait_until: 10.hours.from_now)
redirect_to :root_url, notice: "Message sent"
end