我有一个带有破坏动作的 trackers_controler。我正在尝试将销毁操作重定向到销毁时的索引,因为所有这些跟踪器都显示在 index.html 的汇总表中。
在我的销毁操作中,当我重定向到 tracker_url 时,我的 flash 通知正确显示。但是 URL 有 id(应该这样)
redirect_to tracker_url, :notice => "Tracker Disabled!"
redirect with the flash notice displaying
/trackers/trackers/5
当我使用下面的重定向重定向到索引时,它会在 url 中显示 flash 通知,但不会在消息中显示 flash 通知。
redirect_to :action => index, :notice => "Tracker Disabled!"
redirects without the flash notice
/trackers?notice=Tracker+Disabled%21
为了调试,我从 index.html.erb 和 show.html.erb 复制了代码,这样它们是相同的,并且仍然将 flash 通知作为 url 的一部分,即使它们都在同一个位置呈现消息。消息的部分位于 layouts/messages 文件夹中
<%= render 'layouts/messages' %>
以下是我的节目和索引
def index
authorize! :view, :silver, :message => 'Access limited to Silver Plan subscribers.'
@new_tracker = Tracker.new
@current_user = current_user
@trackers_enabled = Tracker.enabled.where(:user_id => @current_user.id)
@trackers_disabled = Tracker.disabled.where(:user_id => @current_user.id)
end
def show
authorize! :view, :silver, :message => 'Access limited to Silver Plan subscribers.'
@new_tracker = Tracker.new
@current_user = current_user
@trackers_enabled = Tracker.enabled.where(:user_id => @current_user.id)
@trackers_disabled = Tracker.disabled.where(:user_id => @current_user.id)
end
从我的开发日志这里是重定向后的帖子
SHOW
重定向到 /trackers/1 Completed 302 Found in 19ms (ActiveRecord: 13.8ms)
在 2013-09-14 11:06:06 -0500 开始 GET "/trackers/1" for 127.0.0.1 由 TrackersController#show 作为 HTML 参数处理:{"id"=>"1"}
INDEX
重定向到 /trackers?notice=Tracker+Disabled%21 Completed 302 Found in 19ms (ActiveRecord: 13.5ms)
开始 GET "/trackers?notice=Tracker+Disabled%21" for 127.0.0.1 at 2013-09-14 11:06:51 -0500 由 TrackersController#index 作为 HTML 参数处理:{"notice"=>"Tracker Disabled! "}