Rails如何validation文件格式?

如何validation文件字段的格式是否正确?

我希望图像字段validation它是.png,.jpg,.jpeg。

并且它有结尾的flv .flv

并且它有结束的快速时间.mov

如何创建错误消息以告知该字段无效。

我的simple_form_for:

 'Navn', :required => true %>

'Text', :size => '12x12' %>

'', :required => true %>

'', :required => true %>

'', :required => true %>
'Create movie' %>

更新:

我已经弄清楚如何validation.mov和.flv字段:

 validates_format_of :flv, :with => %r{\.flv$}i, :message => "file must be in .flv format" validates_format_of :mov, :with => %r{\.mov$}i, :message => "file must be in .mov format" 

我没有找到validation图像的解决方案。

我的控制器:

 def savenew @photographer = Photographer.new(params[:photographer]) @photographer.sort_order = Photographer.count + 1 if @photographer.save redirect_to :action => 'list', :id => params[:id] flash[:notice] = "Movie #{@photographer.name} is created" else render 'create', :id => params[:id] end end 

如果你想继续使用flv和mov,你可以这样做:

 validates_format_of :image, :with => %r{\.(png|jpg|jpeg)$}i, :message => "whatever" 

请注意,这只会validation文件名是否以特定字符串结尾。 这些不validation实际文件是真正的PNG(或任何格式)。 所以有人仍然可以上传一个扩展名为“.png”的zip文件。