div类包装fieldwitherrors将无法正常工作

时间:2012-04-17 10:34:14

标签: ruby-on-rails

我的Rails应用程序只是不会向有错误的字段添加任何类。无法找到问题。

在模型中得到了这个:

validates_presence_of :name
validates_uniqueness_of :name
validates_presence_of :phone

任何想法从哪里开始寻找解决方案?

这是视图erb文件,它不会生成所需的样式类:

<%= form_for :company, :url => {:action => 'create_lead'}, :html => {:class => "form-horizontal"} do |f|  %>

<div class="">

    <div class="span2"> 
    <%= f.label :csdd_nr, "CSDD numurs" %>
    <%= f.text_field :csdd_nr, {:class => "input-small"} %>
    </div>

    <div class="span4">
    <%= f.label :name, "Nosaukums" %>
    <%= f.text_field :name %>
    </div>

    <div class="span6">
    <%= f.label :ap_veh_count, "Auto skaits" %>
    <%= f.text_field :ap_veh_count, {:class => "input-small"} %><br /><br />
    </div>

    <div class="span6">
    <%= f.label :office_adress_street, "Faktiskā adrese" %>
    <%= f.text_field(:office_adress_street, {:placeholder => 'Iela', :class => "input-medium"}) %> <%= f.text_field(:office_adress_city, {:placeholder => 'Pilsēta', :class => "input-small"}) %> <%= f.text_field(:office_adress_postcode, {:placeholder => 'Pasta indekss', :class => "input-small"}) %>
    </div>

    <div class="span4">
    <%= f.label :web, "Mājaslapa" %>
    <%= f.text_field :web  %><br /><br />
    </div>

    <div class="span4">
    <%= f.label :phone, "Telefona numurs" %>
    <%= f.text_field :phone  %>
    </div>

    <div class="span4">
    <%= f.label :email, "E-pasts" %>
    <%= f.text_field :email  %>
    </div>

    <div class="span4">
    <%= f.label :company_field, "Uzņēmuma nodarbošanās" %>
    <%= f.text_field :company_field %><br /><br />
    </div>

    <%= f.hidden_field(:company_status, :value => "3") %>

    <div class="span12">
    <br /><br />
    <%= submit_tag("Saglabāt", :class => 'btn btn-primary') %>
    <%= link_to "Atcelt", {:action => 'list_leads'}, :class => 'btn' %>
    </div>  def new_lead
    @company = Company.new
end

def create_lead
    @company = Company.new(params[:company])

    if @company.save
        flash[:success] = "Uzņēmums saglabāts"
        redirect_to(:action => 'new_lead')
    else
        flash[:alert] = "!!! Uzņēmums nav saglabāts"
        redirect_to(:action => 'new_lead')
    end
end
</div>

<% end %>

好的,这是将数据保存到数据库的控制器:

def new_lead
    @company = Company.new
end

def create_lead
    @company = Company.new(params[:company])

    if @company.save
        flash[:success] = "Uzņēmums saglabāts"
        redirect_to(:action => 'new_lead')
    else
        flash[:alert] = "!!! Uzņēmums nav saglabāts"
        redirect_to(:action => 'new_lead')
    end
end

1 个答案:

答案 0 :(得分:1)

当发生验证错误时,会发生这种情况,因为您正在重定向而不是渲染。您的控制器应如下所示:

def create_lead
  @company = Company.new(params[:company])

  if @company.save
    flash[:success] = "Uzņēmums saglabāts"
    redirect_to(:action => 'new_lead')
  else
    flash[:alert] = "!!! Uzņēmums nav saglabāts"
    render(:action => 'new_lead')
  end
end