I'm in Rails 4 using Bootstrap
This is my create action in my controller:
def create
@contest = Contest.new(contest_params)
if @contest.save
flash[:notice] = "Contest saved successfully"
redirect_to @contest
else
redirect_to root_path, :notice => 'Project not saved'
end
end
How come there is no notice when I submit the form? Is there something I am missing? I'm a beginner and have not been able to figure this out.
I have the following in my layout already:
<body>
<p class="notice"><%= flash[:notice] %></p>
<p class="alert"><%= flash[:alert] %></p>
<%= render 'layouts/header' %>
<%= yield %>
<%= render 'layouts/footer' %>
</body>
Read about the flash . You must display the flash content in your html views, preferably in your layout.
<html>
<body>
<% flash.each do |name, msg| -%>
<%= content_tag :div, msg, class: name %>
<% end -%>
</body>
</html>
try like this:
flash[:notice] = 'Project saved successfully'
redirect_to about_path
redirect with flash was broken in some versions. Workaround if you want to try:
redirect_to url, :flash => { :notice => "notice" }
also edit your layout
Remove the layouts header in case it conflicts.
<body>
<p class="notice"><%= flash[:notice] %></p>
<p class="alert"><%= flash[:alert] %></p>
<%= yield %>
<%= render 'layouts/footer' %>
</body>
在html视图的root_path
中设置<%= flash[:notice] %>
。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.