【发布时间】:2017-03-16 04:41:15
【问题描述】:
我已经创建了 rails 5 应用程序,并且在控制器和视图中有以下代码用于显示 flash 消息。我看到很多这样的问题,但我无法解决问题。
控制器端
respond_to do |format|
if @trigger.update(trigger_params)
flash[:success] = 'Trigger was successfully updated.'
format.html { redirect_to edit_project_trigger_path(@trigger, project_secret_key: @project.secret_key) }
format.json { render :show, status: :ok, location: @trigger }
else
error = ''
@trigger.errors.full_messages.each do |msg|
error += "#{msg} <br>"
end
flash.now[:error] = error
format.html { render :new }
format.json { render json: @trigger.errors, status: :unprocessable_entity }
end
end
查看侧面
<% if flash[:error].present?%>
<div class="alert alert-danger alert-message alert-message-common" role="alert">
<%= flash[:error].html_safe %>
</div>
<% end %>
<% if flash[:notice].present? %>
<div class="alert alert-success alert-message alert-message-common" role="alert">
<%= flash[:notice].html_safe %>
</div>
<% end %>
<% if flash[:alert].present? %>
<div class="alert alert-danger alert-message alert-message-common" role="alert">
<%= flash[:alert].html_safe %>
</div>
<% end %>
<% if flash[:success].present?%>
<div class="alert alert-success alert-message alert-message-common" role="alert">
<%= flash[:success].html_safe %>
</div>
<% end %>
使用警报时显示,但不显示成功消息。 rails 5 有问题还是我的代码有问题?
我希望警报因页面渲染而有效,而成功因重定向而无效。
【问题讨论】:
-
在您向我们展示的代码中,您没有在
flash[:success]中设置任何值...还有比这更多的代码吗?在什么情况下你会期望在flash[:success]中看到一些东西? -
@TarynEast 我想在数据库中成功更新数据后显示成功消息。我被用于相同目的的 flash[:notice] 和 flash[:success]。
-
1.将所有类型的 css 类更改为 alert-danger(因为警报正在工作)以进行测试。 2.然后试试这个solution。
-
@Omkar 仍然存在同样的问题,我希望 css 中没有问题。
标签: ruby-on-rails flash-message