我正在使用 Rails 3,并且 StatusController 中有一个 form_for 。当我点击提交按钮时,我的创建方法永远不会被调用。我的创建方法有一个redirect_to:index,但是当我点击“提交”时,所有信息都保留在表单中,并且页面不会重定向。然而,该对象确实正确保存在数据库中。
什么会导致这种情况?
控制器:
class StatusController < ApplicationController
def new
@status = Status.new
end
def create
@status = Status.new(params[:status])
@status.date_added = Time.now
if @status.save
else
render 'new'
end
end
View:
.well
=form_for @status do |f|
=f.label :user_email
=f.text_field :user_email
=f.label :added_by
=f.text_field :added_by
=f.label :comments
=f.text_area :comments
%br
%br
=f.submit
我已经将代码调整为此,现在数据在提交时从表单中消失,但是该对象永远不会被保存,因为永远不会调用“创建”。
我刚刚在这里学习 Ruby,所以我可能是错的,但如果状态保存正确,看起来你永远不会重定向。
class StatusController < ApplicationController
def new
@status = Status.new
end
def create
@status = Status.new(params[:status])
@status.date_added = Time.now
if @status.save
format.html { redirect_to @status } # Or :index if you want to redirect to index
else
render 'new'
end
end
当然,请确保您也创建了这些控制器方法和视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)