gpt4 book ai didi

ruby-on-rails - rails 中的 action_name 方法有多可靠?

转载 作者:数据小太阳 更新时间:2023-10-29 07:57:07 25 4
gpt4 key购买 nike

如何确保 controller.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 并仍然获得正确的 action_name?

谢谢,塔布雷兹

---- 回应 Mischa 评论的代码片段----

这是我在 Controller 中的内容:

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 提到的内容是有道理的(那里的操作用词不当......)。那么,有没有一种方法可以在不发出重定向的情况下完成此操作?我还没有使用重定向的唯一原因是为用户保留当前选项卡的逻辑与渲染操作一起使用。如果实现此目的的唯一可能方法是通过重定向,我可能不得不重写它。

最佳答案

命名有点困惑,但是 render :action => "edit" 呈现编辑 View 。它与 Controller 操作 编辑没有任何关系。 action_name 是可靠的,但由于上述原因,您不能依赖它。打开一个新问题和/或分享更多代码以获取有关如何解决问题的建议。

关于ruby-on-rails - rails 中的 action_name 方法有多可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com