我已經創建了一個簡單的窗體來創建一個模型的實例,並且由於某種原因它沒有在控制器中調用create方法。下面是表單代碼:Rails窗體不創建對象
<% @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_id你驗證house_id必須存在?你注意到你的伴侶對象沒有分配house_id嗎? – Henry
所以,我不小心給了視圖的舊代碼,表單的第一行是'<%= form_for:mate,:url => {:action =>'create'} do | f | %>'否則我得到一個nomethod錯誤「model_name」。如下所述,我添加了對房子的引用,但仍然按下提交時,它會清除文本字段,並且什麼都不會發生。當我在控制檯中查看Mate.all時,沒有添加任何內容。 – user2136807