gpt4 book ai didi

ruby-on-rails - ActiveRecord::RecordNotFound 在 MembersController#show

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:02 25 4
gpt4 key购买 nike

对不起,我的英语不好。几个小时前我刚刚安装了 ruby​​ 和 rails(你不会相信我花了 3 天时间在这台 ubuntu 10.04 机器上安装 ruby​​、rvm、rails 等),我正在尝试实现基本的 Member 脚手架。我的 rails 版本是 3.0.0,我的 ruby​​ 是 1.9.2。

当我#rails generate scaffold Member email:string password:string 它创建了各种文件。我还做了 #rake db:migrate 以在 mysql 中实现数据库。所以在成员 Controller 中,我看到我必须通过 127.0.0.1:3000/members/才能到达基本的脚手架设置。

我刚刚变了

def new
@member = Member.new

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @member }
end
end

以上语句在member controller中写入

def register
@member = Member.new

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @member }
end
end

你看,我刚把新的改成寄存器,现在,当我试图进入127.0.0.1:3000/成员(member)/注册ActiveRecord::RecordNotFound 错误出现。我该如何解决这个问题?我只想做127.0.0.1:3000/成员(member)/注册成为用户可以注册的页面..

btw,这个RoR好像很复杂,api文档好像太宽泛了,初学者看不懂。我上周订购了一本 RoR 书,所以我会看看进展如何......

最佳答案

通过使用脚手架生成器,成员被映射为资源。查看 config/routes.rb

resources :members

当实体被映射为资源时,它们会得到一组默认路由。您可以通过执行 rake routes

查看所有映射的路线
members GET     /members(.:format)          {:action=>"index", :controller=>" members"}
members POST /members(.:format) {:action=>"create", :controller=> "members"}
new_member GET /members/new(.:format) {:action=>"new", :controller=>"members"}
edit_member GET /members/:id/edit(.:format) {:action=>"edit", :controller=>"members"}
member GET /members/:id(.:format) {:action=>"show", :controller=>"members"}
member PUT /members/:id(.:format) {:action=>"update", :controller=>"members"}
member DELETE /members/:id(.:format) {:action=>"destroy", :controller=>"members"}

当您将 new 操作重命名为 register 时,该映射不再有有效路由。

您可以做的是将操作保留为 new 并在您的 routes.rb 中添加以下路由

match 'members/register' => 'members#new'

这样你就不会破坏脚手架中的其他东西。如果您真的想重命名要注册的操作,我建议您不要使用脚手架。

关于ruby-on-rails - ActiveRecord::RecordNotFound 在 MembersController#show,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3912408/

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