我有一个非常基本的Rails应用程序。我正在尝试验证。
主计长
class PagesController < ApplicationController
def new
@user = User.new
end
def edit
@user = User.new(:state => params[:state], :country => params[:country])
@user.save
end
end
型号
class User < ActiveRecord::Base
validates_presence_of :country
validates_presence_of :state
end
浏览次数/页面/edit
<% form_for :user, @user, :url => { :action => "edit" } do |f| %>
<%= f.text_field :country %>
<%= f.text_field :state %>
<%= submit_tag 'Create' %>
<% end %>
我想做的就是在我还没有输入任何内容的时候点击Create,然后出现一个验证并列出必填字段。我读过一些教程,它们使它变得如此简单。为什么我不能让它工作?我做错了什么?当我创建一个scaffold时,它工作正常,但是在public/stylesheets中生成一个scaffold.css。现在我在public文件夹中没有样式表。
2条答案
按热度按时间bkhjykvo1#
您正在将表单发送到“edit”操作,该操作不执行任何处理。您需要它转到“create”操作,该操作应如下所示:
form_for行可以很简短,而且需要调用error_messages来获取自动生成的错误列表:
ygya80vv2#
请参阅Rails conditional validation: if: doesn't working
看起来你认为验证......如果:它的工作方式与实际情况不同。这条线
如果from_different_to方法返回true,则转换为验证to_id是否存在。如果from_different_to的计算结果为false,则不进行验证。