ruby-on-rails - ruby on rails 中的下拉列表表单验证警报

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我在一个表单中有下拉列表和两个单选按钮。这是代码。我不知道如何在 Controller 中设置验证。当不从下拉列表和单选按钮之一中选择值时,我必须显示警告消息“请从下拉列表中选择值”并选中一个单选按钮。在提交表单时如何在 ruby​​ on rails 中实现。

<%= form_tag :action => 'show' do %>
    <strong>Select device: </strong> <%= collection_select(:device, :id, @devices, :id, :name, options ={:prompt => "-Select a device"}) %>
    <br></br>
    <strong>Chose: </strong><%=  radio_button_tag :name,:time, false, :onclick => "this.parentNode.submit();"%>Time
    <%=  radio_button_tag :name,:graph%>Graph
    <% end %> 

在 device.rb 中我设置了以下但没有显示任何消息。

 class Device < ActiveRecord::Base
   attr_accessible :name
   validates_presence_of :name
   has_many :properties

   def validate
     if name == 'None'
       errors.add_to_base("You must select a device name")
     end
   end
 end

最佳答案

为什么不使用 validates_exclusion_of ? (或 Rails 3 中的等价物)

http://apidock.com/rails/v2.3.8/ActiveModel/Validations/ClassMethods/validates_exclusion_of

关于ruby-on-rails - ruby on rails 中的下拉列表表单验证警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15106619/

相关文章:

ruby-on-rails - 事件管理员,不能与父级同时创建嵌套资源

ruby-on-rails - 来自服务器而不是客户端计算机的 Time.now

ruby-on-rails - Active Admin 使用预设集合批量编辑产品

ruby-on-rails - 将 ActiveRecord class_name 与 pluck 问题一起使用

javascript - 将 Ruby 正则表达式翻译成 JavaScript

mysql - rails 上的 ruby : rake aborted bad file descriptor

sql - 同一天创建的记录数

ruby - 如何在 Ruby 中将一个 block 和一个初始参数传递给每个 block ?

ruby-on-rails - 将一个 Controller 重定向到另一个 Controller

ruby-on-rails - 尝试通过 accepts_nested_attributes_for 查找或创建?