如何确保controller.action_name返回正确的信息?我依靠它在菜单栏中生成用户友好的消息。考虑以下情况。当我使用rails中的action_name方法有多可靠?
的ACTION_NAME方法的伟大工程:
redirect_to edit_profile_path # I get action_name as "edit" in my ApplicationController
但是当我用下面的它不会产生我需要的信息:
render :action => "edit" # The action_name shows as "get" instead of "edit"
有没有一种方法,我可以使用渲染行动,仍然得到正确的action_name?
感谢, Tabrez
----响应米沙的评论代码段----
这是我在控制器:
def update
if @profile.update_attributes(params[:profile])
format.html {
flash.now[:notice] = 'Profile was successfully updated.'
render :action => "edit"
}
end
我不是重定向,因为我仍然希望用户保持编辑模式。
在我的应用助手我的代码如下效果:
if(action_name == "edit" && (can? :read, l_disp_object)) then
path_links_subheader.concat(link_to 'Show Saved Version', :controller => controller.controller_path, :action => :show)
end
基本上,如果用户在编辑模式下,我想在菜单上的“查看保存的版本”链接。但是,当我使用“render:action”语法时,动作变为“get”,这基于Mischa提到的内容(动作是一个用词不当的地方)。那么,有没有一种方法可以在不发布重定向的情况下完成此任务?我没有使用重定向的唯一原因是保留用户当前选项卡的逻辑适用于渲染操作。如果唯一可行的方法是通过重定向,我可能不得不重写它。
该行为的routes.rb文件中有什么? – 2012-03-29 23:06:17
嗨弗雷德里克 - 请参阅最新版本。我能够将问题追溯到显示编辑视图的方式。 – Tabrez 2012-03-29 23:11:47