Rails表单中的下拉菜单和常量的使用

如图需求:


下拉菜单选择常量.gif

我们需要新增一个字段叫“用户状态”,其中有两种状态,分别为“使用”和“不使用”。

可以分为3步制作:

1)明确这是业务层面的需求,要放在model中进行常量设定。2)制作下拉菜单,进行选择,然后创建数据。3)在特定的页面显示结果。

操作:

一、明确这是业务层面的需求,要放在model中进行常量设定。
“用户状态”这个字段属于用户的属性,所以在user的model中定义。在user.rb中插入:

STATUS = {"use" =>"使用", "no_use" => "不使用"}.freeze

解释:
use和no_use为两个哈希的key,使用和不使用为value。
freeze方法把这个哈希固定住,无法修改。这都可以在rails c中进行测试。

二、制作下拉菜单,进行选择,然后创建数据。

<%= form_for @user do |f| %>
(其他内容)
  用户状态:<%= f.select :status, User::STATUS.invert %>
<%= f.submit "新增" %> <% end %>

其中,:status为字段名。
User::STATUS为路径,表示到Use的rmodel中找STATUS常量。
invert方法,把常量中的key和value进行调换,这样在页面中就出现“使用”和“不使用”,而不会显示key中的“use”和“no_use”。

三、在特定的页面,如index中,显示结果。

<% @users.each_with_index do |user| %>
      其他内容
      <%= User::STATUS[user.status] %>
      其他内容
<% end %>

你可能感兴趣的:(Rails表单中的下拉菜单和常量的使用)