2013-04-14 110 views
0

我尝试在视图中显示验证错误以创建新文章页面。我在文章模型中验证了检查主体和标题的存在(验证:title,:body,:presence => true)。它不允许创建新的文章,当我保留文章和标题文本框但显示“模板不见了”与下面的信息错误。“模板丢失”错误。缺少模板创建

Missing template articles/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "F:/kuta/billi/app/views" * "C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/twitter-bootstrap-rails-2.2.6/app/views" * "C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/devise-2.2.3/app/views" 

我已经把<%= f.error_messages%>中部分为文章的新的一页,并把宝石 'dynamic_form' 中的Gemfile。

_form.html.erb的文/ new.html.erb

<%= form_for @article, :html => { :class => '' } do |f| %> 
<%= f.error_messages %> 
    <div> 
    <%= f.label :title, :style => "margin-top:10px;" %> 
    <div> 
     <%= f.text_field :title, :style => "width:730px; height:30px; border: 1px solid #66c9ee;margin-top:10px; background-color:#FFFFFF;" %> 
    </div> 
    </div> 
    <div> 
    <%= f.label :body, :class => 'control-label' %> 
    <%= f.text_area :body, :style => "width:730px; height:250px; border: 1px solid #66c9ee;margin-top:10px; background-color:#FFFFFF;" %> 
    <%= f.label :tag_list, :style => "margin-top:10px" %><br /> 
    <%= f.text_field :tag_list, :style => "width:730px; height:30px; border: 1px solid #66c9ee;margin-top:0px; background-color:#FFFFFF;" %> 
    <div style="margin-top: 20px"> 
    <%= f.submit nil, :class => 'btn btn-primary' %> 
    <%= link_to t('.cancel', :default => t("helpers.links.cancel")), 
       articles_path, :class => 'btn' %> 
    </div> 
<% end %> 

article.rb模型

class Article < ActiveRecord::Base 
    attr_accessible :title, :body 
    attr_accessible :tag_list 
    has_many :comments 
    belongs_to :user 
    has_many :taggings 
    has_many :tags, through: :taggings 
    validates :title, :body, :presence => true 


    def tag_list 
    self.tags.collect do |tag| 
    tag.name 
    end.join(", ") 
    end 

    def tag_list=(tags_string) 
    tag_names = tags_string.split(",").collect{|s| s.strip.downcase}.uniq 
    new_or_found_tags = tag_names.collect { |name| Tag.find_or_create_by_name(name) } 
    self.tags = new_or_found_tags 
    end 
end 

能否请你帮我,我哪里错了。

回答

6

如果验证失败,在您的控制器动作,您应该再次的render 'new'代替render 'create'

+0

喜zippie呈现新的模板,你的建议为我工作。谢谢。但验证错误显示没有任何颜色(基本上它应该是红色的)。任何想法如何获得他们的颜色。谢谢。 –

+0

当它们显示时,右键单击 - >检查元素并查看包裹它们的div具有哪个类或ID。一旦你发现让他们与CSS红色 – Zippie