【发布时间】:2012-02-25 05:30:57
【问题描述】:
def new
@user = User.find(session[:this_user])
@message = Message.new
@people= People.order("is_active DESC, first_name, last_name")
end
当创建动作验证失败时,我需要重新设置上述变量,创建一个如下所示的动作:
def create
@message = Message.new(params[:message])
if @message.save
redirect_to(messages_path, :notice => 'Message was successfully created.')
else
@user = User.find(session[:this_user])
@message = Message.new
@people= People.order("is_active DESC, first_name, last_name")
render :action => "new"
end
结束
删除冗余代码(并将其干燥)的正确方法是什么?
此外,如果验证失败,上述方法会导致表单忘记任何输入。有没有更好的方法让它记住输入的任何信息?
Rails 3.07,Ruby 1.9.2
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 controller