モデルのインスタンスを作成する単純なフォームを作成しましたが、何らかの理由でコントローラーで create メソッドを呼び出していません。フォームコードは次のとおりです。
<% @house.mates.each do |mate| %>
<p><%= mate.name %></p>
<% end %>
<h2>Add a new mate:</h2>
<%= form_for @mate do |f| %>
<p><%= f.label "Name" %>
<%= f.text_field :name %>
<%= f.hidden_field :house_id %>
</p>
<%= f.submit "Submit", :action => :create %>
<% end %>
コントローラーのコードは次のとおりです。
class MatesController < ApplicationController
def new
@mate = Mate.new
end
def create
@mate = Mate.new(params[:mate])
@mate.save
redirect_to house_path(current_house)
end
end
Mate モデルと House モデルの間には多対 1 の関係があります... 私は Rails にかなり慣れていませんが、同様の形式で他のアプリを作成しましたが、これまでにこの問題が発生したことはありません。コンソールで Mate オブジェクトを作成して保存できますが、エラーは発生していないため、何らかの理由でコントローラー メソッドが呼び出されていないようです。どんな助けでも大歓迎です!