【问题标题】:Unexpected Flash意外闪光
【发布时间】:2019-04-03 08:29:50
【问题描述】:

每当我想登录、注册、删除用户时,我都会尝试显示 flash,但浏览器一次显示两个相同的 flash:

所以我认为问题是我的 layout/application.html.erb 出了问题。这是我的申请文件:

    <!DOCTYPE html>
    <html>
    <head>
    <title>LibraryVLC</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag    'application', media: 'all', 'data- 
    turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks- 
    track': 'reload' %>
    <%= csrf_meta_tags %>
    <%= render 'layouts/shim' %> 

    </head>

    <body>

    <%= render 'layouts/header' %>
    <div class="container"> 
    <%= flash.each do |key, value| %>
    <div class="alert alert-<%= key %>"><%= value %></div>
    <% end %>  
    <%= yield %>

    </div>  
    </body>
    </html>

这是我的 users_controller:

    def index
    @users = User.all.page params[:page]
    # byebug
    end

    def new
    @user = User.new 
    end

    def edit
    #@user = User.find_by(params[:id]) 
    end

    def show
    @user = User.find(params[:id]) 
    end

    def create
    @user = User.new(user_params)
    if @user.save
    # hand a successful saves
    log_in @user
    flash[:success] = "Welcome to VLC Library!!!!"
    redirect_to @user
    else
    render 'new'
    end
    end

    def update
    if @user.update_attributes(user_params)
    flash[:success] = "Profile updated"
    redirect_to @user
    else
    render "edit"
    end
    end

    def destroy
    User.find(params[:id]).destroy
    flash[:success] = "User delected"
    redirect_to users_url
    end


    private

    def user_params
    params.require(:user).permit(:name, :email, :password, 
    :password_confrimation) 
    end

    def find_user
    @user = User.find_by id: params[:id]
    end
    end

有没有办法解决这个问题?

查看/用户/edit.html.erb

    <% provide(:title, "Edit user") %>
    <h1>Update your profile</h1>

    <div class="row">
    <div class="col-md-7 col-md-offset-3">
    <%= form_for(@user) do |f| %>

    <%= f.label :name %>
    <%= f.text_field :name, class: 'form-control' %>

    <%= f.label :email %>
    <%= f.email_field :email, class: 'form-control' %>

    <%= f.label :password %>
    <%= f.password_field :password, class: 'form-control' %>

    <%= f.label :password_confirmation, "Confirmation" %>
    <%= f.password_field :password_confirmation, class: 'form-control' 
    %>

    <%= f.submit "Save changes", class: "btn btn-primary" %>
    <% end %>
    </div>
    </div>

查看/用户/index.html.erb

    <% provide(:title, 'All users') %>
    <h1>All users</h1>

    <%= paginate @users %>

    <ul class="users">
    <%= render @users %>     
    </ul> 

    <%= paginate @users %>

查看/users/show.html.erb

    <% provide(:title, @user.name) %>
    <div class="row">
    <aside class="col-md-4">
    <section class ="user_info">
    <h1>   
      <%= gravatar_for @user %>
      <%= @user.name %>
     </h1>
    </section>
    </aside>
    </div>

查看/users/_user.html.erb

    <% provide(:title, @user.name) %>
    <div class="row">
    <aside class="col-md-4">
    <section class ="user_info">
    <h1>   
      <%= gravatar_for @user %>
      <%= @user.name %>
    </h1>
    </section>
    </aside>
    </div>

布局/标题

    <%= form_tag(search_page_path, :method => "get",   
    class: 'navbar-form navbar-right') do %>  
    <div class="input-group">  
    <%= search_field_tag :search, params[:search], placeholder: 
    "Search", class: "form-control" %>  
    <div class="input-group-btn">  
    <%= button_tag "", :class => 'btn btn-info glyphicon glyphicon- 
    search',:name => nil%>  
    </div>  
    </div>  
    <% end %>

布局/垫片

    <!--[if lt IE 9]>
    <script 
    src="http://html5shim.googlecode.com/svn/trunk/html5.js"> 
    </script>
    <![endif]-->

【问题讨论】:

  • layouts/shimlayouts/header 在哪里?

标签: ruby-on-rails ruby


【解决方案1】:

在你的应用布局中的一行:

<%= flash.each do |key, value| %>

你有一个等号,表示输出运行each的结果(即&lt;%=而不是&lt;%)。 each 语句的返回值是被迭代的集合,因此您正在迭代集合并使用 html/css 美化它,然后在最后将整个集合输出到一个巨大的转储中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多