Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 钢轨走线,Nomethoderor_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 钢轨走线,Nomethoderor

Ruby on rails 钢轨走线,Nomethoderor,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正在使用Rails3.2和Ruby4。当我浏览到时,我得到一个错误: NoMethodError in Accounts#new Showing D:/row/dev/basic/app/views/accounts/_form_account.html.erb where line #1 raised: undefined method `accounts_path' for #<#<Class:0x42c8040>:0x6daa960> Extracted sour

我正在使用Rails3.2和Ruby4。当我浏览到时,我得到一个错误:

NoMethodError in Accounts#new
Showing D:/row/dev/basic/app/views/accounts/_form_account.html.erb where line #1 raised:
undefined method `accounts_path' for #<#<Class:0x42c8040>:0x6daa960>
Extracted source (around line #1):
1: <%= form_for(@account) do |f| %>
2: 
3:   <div>
4:    <%= f.label :username %><br>
但是,这不是在routes.rb中创建的。编辑后的My routes.rb是:

Basismysql::Application.routes.draw do

  # Public pages
  get '/page1' => 'pages#page1'
  get '/page2' => 'pages#page2'
  get '/page3' => 'pages#page3'

  get "/account/index" => 'accounts#index'
  get "/account/show" => 'accounts#show'
  get "/account/new" => 'accounts#new'
  get "/account/edit" => 'accounts#edit'
  get "/account/delete" => 'accounts#delete'
  get 'account/:id/delete' => 'accounts#delete', :as => :accounts_delete

  devise_for :users
  root :to => 'pages#index'
end
New.html.erb是:

<div class="container">
  <h1>Accounts#new</h1>
  <p>Find me in app/views/accounts/new.html.erb</p>
</div>

<div class="container">
  <%= render "form_account" %>
</div>
<%= form_for(@account) do |f| %>

  <div>
   <%= f.label :username %><br>
   <%= f.text_field :username %>
  </div>
  <div>
   <%= f.label :firstname %><br>
   <%= f.text_field :firstname %>
  </div>
  <div>
   <%= f.label :lastname %><br>
   <%= f.text_field :lastname %>
  </div>
  <div>
    <%= f.label :organisation %>
    <%= f.text_field :organisation %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
除此之外:

resources :accounts
您可能需要:

resource :account
您首先将routes单件餐添加到routes文件中,但其中一些需要是
PUT
s或
POST
s或
DELETE
s<代码>资源:帐户是一个更简单的快捷方式(正确)

这不是创建路由的方式,它们都是未命名的(除了最后一个)、非restful的,并且都是
get
,替换为

resources :accounts
您的错误将消失

这是有效的

rails generate controller accounts index show new edit destroy
注意:生成控制器时,必须使用帐户,而不能使用帐户

rails generate model account
注意:您必须将帐户设置为单数

在routes.rb中

map.resources :accounts /or
resources :accounts

取决于rails的版本

谢谢
资源:帐户
工作正常。我假设您提到了
resource:account
,因为我编写了
rails生成模型account
。这实际上是我问题中的一种类型,我确实使用了
rails生成模型帐户
@Nick您应该在模型创建中使用单数
account
,此
帐户
模型的对应路径将是
资源:accounts
。您根本不需要
resource:account
。谢谢,rails生成模型account是一个输入错误。我确实使用rails生成模型帐户
rails generate controller accounts index show new edit destroy
rails generate model account
map.resources :accounts /or
resources :accounts