在rails 2中使用link_to时,为什么要在路由文件中添加连接

问题描述

|| 我试图完成以下任务:   <%= link_to \“注销\”,{:控制器   => \'users \',:action => \'logout \'},:class => \'menulink2 \'%> 但这没有用,它总是将我重定向到显示视图。我必须在route.rb中添加以下内容:   map.connect \'users / logout \',   :controller => \'用户\',:action =>   \'登出\' 为什么Rails无法识别我正在通过的动作(\'logout \')?     

解决方法

        该逻辑必须在某处指定。从散列ѭ0a到URL必须有一些映射,并且在rails中完成的位置是
routes.rb
文件。在较旧版本的rails中,许多
routes.rb
带有默认值:
map.connect \':controller(/:action/(:id(.:format)))\'
这样就可以指定大多数:controller,:action哈希,然后将其路由到
host.url/:controller/:action
。 在更现代的版本中,基于资源的路由非常受青睐,并且不遵循rails的REST约定的控制器(即仅具有“ 5”个方法)通常必须以某种方式明确指定其路由。 (使用
map.resources :users,:collection => {:get => :logout}
map.connect( \'some_url\',:controller => \'users\',:action => \'logout\'})
) 我正在猜测,但是他们这样做的原因可能是控制器的动作实际上只是其公共方法。 在控制器中使用非URL端点进行测试的公共方法通常非常好。 例如,您可以将ѭ8作为公共方法进行测试,而不必在测试代码中使用use9。 因此,它们将资源操作列入白名单,并默认使其他操作不可访问。让我看一下rails changelog,看看我是否正确。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...