如图需求:
我们需要新增一个字段叫“用户状态”,其中有两种状态,分别为“使用”和“不使用”。
可以分为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 %><br>
<%= f.submit "新增" %>
<% end %>
其中,:status为字段名。
User::STATUS为路径,表示到Use的rmodel中找STATUS常量。
invert方法,把常量中的key和value进行调换,这样在页面中就出现“使用”和“不使用”,而不会显示key中的“use”和“no_use”。
三、在特定的页面,如index中,显示结果。
<% @users.each_with_index do |user| %>
其他内容
<td><%= User::STATUS[user.status] %></td>
其他内容
<% end %>