gpt4 book ai didi

ruby-on-rails - rails : Route to custom controller action

转载 作者:行者123 更新时间:2023-12-04 04:54:59 24 4
gpt4 key购买 nike

我很难理解路线,我希望有人能帮助我。

这是我的自定义 Controller

class SettingsController < ApplicationController
before_filter :authenticate_user!

def edit
@user = current_user
end

def update
@user = User.find(current_user.id)
if @user.update_attributes(params[:user])
# Sign in the user bypassing validation in case his password changed
sign_in @user, :bypass => true
redirect_to root_path
else
render "edit"
end
end
end

我有文件 settings/edit.html.erb 和我的链接
<li><%= link_to('Settings', edit_settings_path) %></li>

路线
get "settings/edit"

对此不起作用,因为那时我得到
undefined local variable or method `edit_settings_path' for #<#<Class:0x00000001814ad8>:0x00000002b40a80>

我必须给这个什么路线?我想不通。如果我把“/settings/edit”而不是路径放在其他资源页面上,它就会搞砸,因为资源名称放在设置/编辑之前

谢谢

最佳答案

以下应该做:

get 'settings/edit' => 'settings#edit', :as => :edit_settings
# you can change put to post as you see fit
put 'settings/edit' => 'settings#update'

如果您使用 /settings/edit直接在链接中,在路径中添加其他资源名称应该没有问题。但是,没有前导斜杠,即 settings/edit它可能有那个问题。

原因 edit_settings_path不工作可能是因为您没有声明命名路由。您必须使用 :as选项来定义您将生成此路径/url 的方法。

关于ruby-on-rails - rails : Route to custom controller action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11071489/

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