如圖需求:
下拉菜單選擇常量.gif
我們需要新增一個字段叫“用戶狀態(tài)”宠互,其中有兩種狀態(tài)浴讯,分別為“使用”和“不使用”。
可以分為3步制作:
1)明確這是業(yè)務(wù)層面的需求究流,要放在model中進(jìn)行常量設(shè)定辣吃。2)制作下拉菜單,進(jìn)行選擇芬探,然后創(chuàng)建數(shù)據(jù)神得。3)在特定的頁面顯示結(jié)果。
操作:
一偷仿、明確這是業(yè)務(wù)層面的需求哩簿,要放在model中進(jìn)行常量設(shè)定宵蕉。
“用戶狀態(tài)”這個字段屬于用戶的屬性,所以在user的model中定義节榜。在user.rb中插入:
STATUS = {"use" =>"使用", "no_use" => "不使用"}.freeze
解釋:
use和no_use為兩個哈希的key羡玛,使用和不使用為value。
freeze方法把這個哈希固定住宗苍,無法修改稼稿。這都可以在rails c中進(jìn)行測試。
二讳窟、制作下拉菜單让歼,進(jìn)行選擇,然后創(chuàng)建數(shù)據(jù)丽啡。
<%= form_for @user do |f| %>
(其他內(nèi)容)
用戶狀態(tài):<%= f.select :status, User::STATUS.invert %><br>
<%= f.submit "新增" %>
<% end %>
其中谋右,:status為字段名。
User::STATUS為路徑补箍,表示到Use的rmodel中找STATUS常量改执。
invert方法,把常量中的key和value進(jìn)行調(diào)換馏予,這樣在頁面中就出現(xiàn)“使用”和“不使用”天梧,而不會顯示key中的“use”和“no_use”盔性。
三霞丧、在特定的頁面,如index中冕香,顯示結(jié)果蛹尝。
<% @users.each_with_index do |user| %>
其他內(nèi)容
<td><%= User::STATUS[user.status] %></td>
其他內(nèi)容
<% end %>