Rails,form_for验证

时间:2015-01-22 10:32:39

标签: ruby-on-rails

我有一个在几个小组之间分享图片的概念。 用户可以创建不同的组并为每个组分配一些图片。组名称标识组。因此,组名称是唯一的。当用户创建组时会检查此项。 用户可以与其他组共享他的照片。 为此我有一个页面,用户必须输入一个他想要共享图片的组名。如果一个组存在,一切都可以,如果没有,text_field应该标记为红色。

我有以下创建新组:

<%= form_for Group.new, :url=>{:controller => "groups",:action=> "create_group"},   :validate => true do |f| %>         
    <br class="clear" />
        <div class="field">
            <%= f.text_field :str, placeholder: "group_name" %>
        </div>  
<%end%>

and in group.rb:
  validates :str,      :presence   => true,
                       :uniqueness => {:case_sensitive => false}

但是,在我检查<%= f.text_field :str, placeholder: "group_name" %>中的内容是否存在的情况下,写一个表单最聪明的方法是什么?如果存在则一切正常。可以编写不同的验证 - 语句?

1 个答案:

答案 0 :(得分:0)

如果我理解正确

Group.new

在每个请求上创建一个新对象

你可能应该在控制器

中做
def new
  @group = Group.new
end

def create
  @group = Group.new
  if @group.update(resource_params)
    // some success actions
  else
    render :new
  end
end

表格:

<%= form_for @group, :url=>{:controller => "groups",:action=> "create_group"},   :validate => true do |f| %>