0

#<#:0x007ff5edcd5330> のメソッド `androids_path' が未定義です。エラーはnew.htmlの1行目にあると言っています。

モデルの名前は Android で、android.rb にあります。これを修正する方法について何かアドバイスはありますか?

androidapps_controller.rb:

def new
    @android = Android.new
end

new.html には次のものがあります。

  <%= form_for(@android, validate:true) do |f| %>
<% @android.errors.full_messages.each do |msg| %>

<li><%= msg %></li>
<% end %>

  <p>
    <%= f.label :title %><br />
    <%= f.text_field :title %>
</p>

<%= f.submit %>
<% end %>

ルート.rb

Grabapp::Application.routes.draw do
root :to => 'iosapps#index'
get "static_pages/home"

get "static_pages/add"

get "static_pages/about"

devise_for :users
resources :iosapps
resources :androidapps
4

2 に答える 2

0

モデルとコントローラーが一致していない (Android と AndroidApp) ため、フォームで正しい URL を指定する必要があります。 <%= form_for(@android, validate: true, url: androidapps_path) do |f| %>

<%= form_for(@android, validate:true) do |f| %>フォームの HTML マークアップを使用して、正しい HTTP メソッド (通常は POST または PUT) を自動的にセットアップします。/androidsまた、POST/androids/:idの場合と PUT の場合に呼び出される URL がセットアップされていることも前提としています。したがって、これが機能するには、レールに必要なルーティングを作成するように指示する必要があります。これは、config/routes.rbすなわちに次の行を追加することによって行われますresources :androids

これが、モデル名とコントローラー名を一致させたほうがよい理由です。Rails は、モデル名に基づいて正しいコントローラー アクションを自動的に推測できます。

ルーティングとその仕組みについてもう少し読む必要があります。ここで実行してください: http://guides.rubyonrails.org/routing.html

于 2013-04-08T18:20:48.497 に答える