將一個表中的字段作為選項制作下拉菜單并進行前臺驗證

一、需求

將一個表中的字段作為下拉菜單選項,顯示在頁面中
例如:
這里我想把lessons表中的name字段中的值作為下拉選項,選中某個選項后,然后存入到另外一個contracts表的course字段中

二、效果圖

image

三、實現(xiàn)方案

(一)使用select_collection

<%= collection_select(:course,:id,Lesson.all,:id,:name,{:prompt => '請選擇'},required: true) %>

其中:

  • :prompt => '請選擇'將選項的默認選項設為"請選擇"
  • required:true用來前臺驗證,如果不進行選擇,則提示用戶進行選擇

(二)使用f.select

<%= f.select :course,Lesson.pluck(:id,:name),{},require: true %>

其中:

  • 通過chrome檢查網(wǎng)頁,可以看到: lesson表中的id字段中的內(nèi)容被解析為下拉菜單的value,lessons表中的name字段中內(nèi)容被解析為下拉選項


    image
  • {}是空的hash,將作為下拉菜單的默認選項,因此默認情況顯示下拉菜單中的內(nèi)容為空
  • pluck查詢出的內(nèi)容是數(shù)組,當將一個字段作為參數(shù),查詢出的是一個一維度數(shù)組,當將兩個及兩個以上的字段作為參數(shù),查詢出來的是二維數(shù)組,如圖:


    image

(三)使用select_tag

<%= select_tag :learn_fare, options_for_select(Lesson.pluck(:price,:id).unshift(nil)),required: true %>

四、補充:

二維數(shù)組中只有其中的每個一維數(shù)組的元素為兩個,才能通過to_h的方法可以轉(zhuǎn)換成hash,否則會提示參數(shù)錯誤


image

五、參考資料

1.collection_select

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,586評論 19 139
  • 什么是SQL數(shù)據(jù)庫: SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫。SQL是...
    西貝巴巴閱讀 2,001評論 0 10
  • --寫給自己看的, 程序員面試 讀書筆記 公司招聘的原因 1 公司計劃擴張 公司制訂了中長期發(fā)展計劃,招聘也必然是...
    moneyice閱讀 620評論 0 1
  • “#本文參加‘青春’大賽,本人保證本文為本人原創(chuàng),如有問題則與主辦方無關(guān),自愿放棄評優(yōu)評獎資格” 作者:趙晨宇 學...
    趙昉閱讀 257評論 0 0

友情鏈接更多精彩內(nèi)容