加载页面时立即向用户显示消息

时间:2014-05-16 06:27:31

标签: ruby-on-rails ruby

我不确定这是否可行,但我想在用户自动登录页面时向用户显示一条Flash消息。我有点玩弄它但没有运气。有没有人知道如何做到这一点,如果有任何帮助将不胜感激!

控制器代码

class BookinController < ApplicationController 
def flash
flash.now[:notice] = "Test"
render :action => :new
end
def bookin 
@alert = "Successfully saved!"
end 



def bookout

@customer_list = Customer.all 
@customer_name = params[:customer_name_in] 
@r = Customer.find_by_last(@customer_name) 

end

end

视图代码

<h2>The Maintenance Functions are restricted to authorized users.  
Please login below</h2>



  <%= form_tag(bookin_bookout_path, :method => "post") do %>

  <div class="field">

         Name

         <%= text_field_tag :customer_name_in %>
  </div>

  <br>

  Password  
         <%= text_field_tag :customer_name_in %>
  </div>


<br>
      <div class="actions">
      <br>

          <%= submit_tag "Submit Customer Name" %>

  </div>

   <% end %>

 <h2> <a href="http://localhost:3000/foodin/foodout">Main Menu</a></td> </h2>

2 个答案:

答案 0 :(得分:0)

您可以尝试使用bootbox-rails gem。

简而言之:

将其添加到您的Gemfile中,

将其添加到您的app / assets / javascripts / applications.js

在您的视图中添加以下内容:

  <script>
      <%= raw @alerts %>
  </script>

在你的控制器中放置这样的东西:

 @alerts = "bootbox.alert('Some kind of alert!');"

答案 1 :(得分:0)

<强>闪存

您需要在操作中设置flash message,因此当用户点击页面时它就在那里

Flash基本上是一个session variable,只会在每个操作中保留,这意味着如果您在操作中设置它,则下一个不会有相同的消息

您可以按照以下方式设置闪光灯:

def action
   flash[:notice] = "Welcome to our website"
end

<强>代码

在查询RSB时,您没有向我们提供最具体的代码。相反,我将向您展示一个简单的示例,并留意一些评论,以便更新:

#app/controllers/bookin_controller.rb
class BookinController < ApplicationController
   def index
      flash[:notice] = "Welcome To Our Page!"
   end
end

#app/views/bookin/index.html.erb
<%= flash[:notice] %>

这将显示呈现的操作的消息。您不需要任何特定方法 - 只需在要渲染的操作中设置flash var值