1

在我的 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)。我失去了 id,因此我失去了造型。

该示例可以在http://dev.mym5realty.com/contact上看到。只需单击发送按钮,您就会看到 id 丢失了。请不要发送真实信息。请。

有什么办法可以防止在一条消息后丢失 id 吗?

验证错误后,我也丢失了关闭按钮图像......如果 iscontact 非常相似?页面然后显示按钮图像。

所以似乎我的 application_helper 没有执行或者在闪存进程的某个地方它不在“/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
4

1 回答 1

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

干杯!

于 2013-05-08T03:28:27.303 回答