在我的application.html.erb中,我有:
<body<% if iscontact? %> id="contact"<% end %>>'
在同一个文件中我有:
<div class="container">
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<%= yield %>
</div>'
发生验证错误后,我丢失了附加到我添加到正文的ID的样式(上面的“联系人”ID)。我失去了身份,因此我失去了造型。
可以在http://dev.mym5realty.com/contact上看到该示例。只需单击发送按钮,您将看到ID丢失。请不要发送真实的消息。请。
有没有办法防止在flash消息后丢失id?
在验证错误后我也丢失了关闭按钮图像...如果是iscontact非常相似?页面然后显示按钮图像。
所以我的application_helper似乎没有在flash进程中的任何地方执行OR,它不在'/ contact'页面上。
def iscontact?
if current_page?('/contact')
return true
end
return false
end
和控制器:
class ContactController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
NotificationsMailer.new_message(@message).deliver
redirect_to(root_path, :notice => "Message was successfully sent.")
else
flash.now.alert = "Please fill all fields."
render :new
end
end
答案 0 :(得分:0)
文档建议您在current_page?
方法中明确声明控制器和操作。链接在这里:
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-current_page-3F
您可能会使用以下内容:
def iscontact?
if current_page?(:controller => 'contact', :action => 'new')
return true
elsif current_page?(:controller => 'contact', :action => 'create')
return true
else
return false
end
end
干杯!