ruby-on-rails – Rails:路由到自定义控制器操作
发布时间:2020-12-17 04:33:32 所属栏目:百科 来源:网络整理
导读:我很难理解路线,希望有人能帮助我. 这是我的自定义控制器 class SettingsController ApplicationController before_filter :authenticate_user! def edit @user = current_user end def update @user = User.find(current_user.id) if @user.update_attribut
我很难理解路线,希望有人能帮助我.
这是我的自定义控制器 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 我有文件设置/ 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,则不应该在路径中添加其他资源名称.但是,没有前导斜杠,即设置/编辑它可能会有这个问题. edit_settings_path不起作用的原因可能是因为您没有声明命名路由.您必须使用:作为选项来定义您将通过哪种方法生成此路径/ URL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |