使用 rails 4 和 ruby 2
无法显示来自我的控制器的闪存消息。我的方法如下所示:
def create
@salary_report = SalaryReport.create(salary_report_params)
if @salary_report.save
redirect_to @salary_report
flash[:notice] = "Lönerapporten sparades korrekt!"
puts "salary report saved #{flash[:notice]}"
else
render :new, notice: "Något gick fel när lönerapporten skulle sparas!"
end
end
如您所见,我添加了一个打印出 flash 通知的 puts 语句,只是为了证明 flash 通知是在重定向之后生成的。
创建工资报告后的日志如下所示:
Redirected to http://localhost:3000/salary_reports/20
salary report saved Lönerapporten sparades korrekt!
Completed 302 Found in 25ms (ActiveRecord: 9.7ms)
显示查看日志后:
Started GET "/salary_reports/22" for 127.0.0.1 at 2013-07-24 16:08:42 +0200
Processing by SalaryReportController#show as HTML
Parameters: {"id"=>"22"}
SalaryReport Load (0.5ms) SELECT "salary_reports".* FROM "salary_reports" WHERE "salary_reports"."id" = ? LIMIT 1 [["id", "22"]]
Document Lo ad (0.3ms) SELECT "documents".* FROM "documents" WHERE "documents"."salary_report_id" = ? [["salary_report_id", 22]]
Rendered salary_report/show.html.erb within layouts/application (6.1ms)
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = 3 ORDER BY "users"."id" ASC LIMIT 1
Completed 200 OK in 62ms (Views: 58.0ms | ActiveRecord: 1.1ms)
在视图中,我显示以下消息:
<% flash.each do |name, msg| %>
<% if msg.is_a?(String) %>
<div class="alert alert-<%= name == :notice ? "success" : "error" %>">
<a class="close" data-dismiss="alert">×</a>
<%= content_tag :div, msg, :id => "flash_#{name}" %>
</div>
<% end %>
<% end %>
我尝试了各种不同的方法来编写控制器方法,但似乎没有任何帮助。非常不确定问题可能是什么。