Rails 5 ...没有闪现通知消息

时间:2016-10-11 14:51:09

标签: ruby-on-rails

我在线关注Michael Hartl的Rails 5教程。我在玩具应用程序部分。我有一个简单的用户脚手架。当我创建一个新用户时,我被重定向到了show模板,但是没有显示flash通知消息内容。

控制器代码如下:

def create
@user = User.new(user_params)

respond_to do |format|
  if @user.save
    format.html { redirect_to @user, notice: 'User was successfully created.' }
  end
end
end

视图代码在这里:

<p id="notice"><%= notice %></p>

正在创建P元素并接收适当的CSS样式,但邮件未传递给它。

基本上,我的输出结果是这样的:

<p id="notice"></p>

我将此添加到视图中:

<% if flash[:notice].blank? %>
  <h1> flash notice is blank </h1>
<% end %>

...我收到闪光通知为空白的消息。

我使用的是Rails 5.0.0.1和Ruby 1.3.2。谢谢。

1 个答案:

答案 0 :(得分:0)

好的,这与我对application_controller.rb文件进行的编辑有关。我第一次尝试创建新用户时收到错误:

ActionController :: UsersController中的InvalidAuthenticityToken #create

为了解决这个问题,在我的application_controller.rb文件的第二行,我改变了这个:

protect_from_forgery with: :exception

到此:

protect_from_forgery with: :null_session

我想这会使我的会话“无效”,可以这么说,所以某些会话变量没有通过,包括flash消息?

无论如何,这个改变让我可以很好地创建新用户,但之后我发现没有显示flash通知消息。

为了解决这个问题,我将:null_session更改回:application_controller文件上的异常,然后我向users_controller.rb文件添加了一个新行,该文件跳过了对新用户的身份验证令牌的验证。这可能不适合制作,但为了完成本教程,这是一个开始:

class UsersController < ApplicationController
  skip_before_action :verify_authenticity_token