在 Rails 中为 ActionController 设置操作

发布于 2024-09-11 20:53:25 字数 697 浏览 11 评论 0原文

我刚刚发出了 [ script/generatescaffold User ] 命令来生成我的文件。所有 CRUD 页面都运行良好,这很好,现在我正在尝试创建更多页面。我在 user_controller.rb 文件中创建一个方法,如下所示:

def login

#blahblah

end

然后为视图创建 app/views/users/login.html.erb 。当我尝试通过浏览器访问它时 [http://localhost:3000/users/login]它给出了错误:

ActiveRecord::RecordNotFound(无法找到 ID=login 的用户): app/controllers/users_controller.rb:16:在“show”中,

我将其解释为使用操作显示,并且它不将登录识别为操作。我是否缺少一些配置才能使此操作发挥作用?我对 Rails 还很陌生,所以我可能会错过一些琐碎的事情。谢谢!

更新 我尝试使用 [script/generatecontrollerUser] 然后在控制器中创建操作方法及其相应的视图。它似乎按预期工作。两者之间有何区别,以及在使用脚本/生成脚手架不可用时导致创建其他操作方法的原因是什么?

I just issued a [ script/generate scaffold User ] command to generate my files. All the CRUD pages work well so that's good and now I'm trying to create more pages. I create a method in the user_controller.rb file as follows:

def login

#blahblah

end

Then created app/views/users/login.html.erb for the view. When I tried accessing it through the browser [http://localhost:3000/users/login] it gives out the error:

ActiveRecord::RecordNotFound (Couldn't find User with ID=login):
app/controllers/users_controller.rb:16:in `show'

I'm interpreting it as using the action show and it doesn't recognize login as an action. Am I missing some configuration for this action to work? I'm quite new to Rails so I might be missing something trivial. Thanks!

UPDATE
I tried using [script/generate controller User] then created action methods in the controller and it's corresponding views. It seems to work as predicted. What makes the difference between the two and what causes the creation of additional action methods when using script/generate scaffold not available?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

靖瑶 2024-09-18 20:53:25

您需要打开路由文件并将集合映射添加到用户路由。在您的情况下,该行可能会显示 map.resources :users, :collection => {:登录=> :get }

查看 http://guides.rubyonrails.org/routing.html 有关铁路路线的更多信息

You need to open your routes file and add a collection mapping to the users route. In your case, the line might read map.resources :users, :collection => { :login => :get }

Check out http://guides.rubyonrails.org/routing.html for more info on Rails routes

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文