gpt4 book ai didi

ruby-on-rails - 路由/in Rails

转载 作者:行者123 更新时间:2023-12-02 05:12:46 27 4
gpt4 key购买 nike

我正在用一个主 Controller 编写一个简单的 Rails 应用程序,我想将 /(:action(:id)) 映射到这个 Controller (基本上删除开头的 Controller 前缀),但仍然有我通过使用 map.resources 获得的路径助手。

我尝试了 map.root :controller => 'notes',但出现错误:

undefined method `note_path' for #<ActionView::Base:0x102038b50>

我在 View 中使用 link_to_unless_current 函数的地方。

编辑:这是 index.html.erb 中给出错误的代码。

<% for note in category.notes %>
<h3><%= link_to_unless_current h(numbered_title note), note %></h3>
<% end %>

最佳答案

更新:我不知道我是怎么想到这个问题的,但作者刚刚指出这是 3 岁的,我完全错过了。如果有人在 rails 3 中需要这种行为,我会留下这个答案。在 rails 2 中它是无效的...

路线 root不适用于整个 Controller ,因为这必须指向特定的操作。

resources的第一个参数将用于确定路径(通常为 /notes )并同时创建像 notes_path 这样的助手.您要做的是将其设置为 '/' , 还要添加 :as选择给正确的助手名字。所以最后它应该是这样的:

resources '/', controller: :notes, as: :notes

还有一点需要注意,如果你想使用任何其他资源,你应该把它们放在 notes 上面路线。否则 Rails 会将资源名称识别为 id笔记 Action 表演。

例子:

resources '/', controller: :notes, as: :notes
resources :comments

前往 /comments将尝试查找 ID 为“comments”的笔记。

resources :comments
resources '/', controller: :notes, as: :notes

开幕 /comments将转到 comments_controller#index .

关于ruby-on-rails - 路由/in Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3946857/

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