私はRailsが初めてです。質問のタイトルは自由に編集してください。これのいくつかはあなたにとって明らかかもしれません。(私は願います!)
多くのロット(販売アイテム)を持つオークションがあります。
オークションを設定しました。追加/編集/削除できます。
/auctions/1/lots/ のような URL から 1 つのページからロットを表示/追加/削除できるようにしたいので、ルートを次のように設定します。
resources :auctions, :except => :edit do
resources :lots
end
私のモデルは次のようになります。
class Auction < ActiveRecord::Base
...
has_many :lots
end
class Lot < ActiveRecord::Base
belongs_to :auction
...
end
私のlots_controller.rbは次のようになります:
def index
@auction = Auction.find(params[:auction_id])
@lots = @auction.lots
end
私のlots/index.html.erbファイル:
<ul>
<% @lots.each do |lot| %>
<li><%= lot.description %></li>
<% end %>
</ul>
これにより、ロットがうまく表示されます。
問題は、新しいロットを作成するためのフォームを配置しようとしたときです。何をどこに置く必要があるのか わかりません。
<%= form_for(@auction.lots.build) do |f| %>
<%= f.input :description %>
<% end %>
これを追加すると、ページを表示すると次のエラーが表示されます。
undefined method `lots_path' for #<#<Class:0x007fb77ea26308>:0x007fb77d43fd00>
@auction.lots.build
私はそこに置くのが正しい議論であるという印象を受けました.
どんな助けでも大歓迎です。ありがとう。