Rails表單幫助方法使用之(select)

2021-07-09 11:04:02 字數 2095 閱讀 2781

基本工具請參考 rails表單幫助方法

"ror">

value="1">ror1option>

value="2">ror2option>

value="3">ror3option>

在乙個下拉式選項中,有一些是必備的資訊,像」name」、」value」與」text」三個,在回傳資訊給serve時,」name」將是接收資訊用的,而」value」會傳回被選的值,而」text」則是使用者會看到的字,依上面的例子來講,ror1、ror2、ror3就是屬於」text」

開始講講哪三種select helper

select:

select(object, method, choices, options = {}, html_options = {})
在actionview::helpers::formoptionshelper中定義

object事乙個實體化變數,這裡很明顯的就是要擺上model物件嘛!

method則是object的乙個屬性,也是資料表中的對應專案

choices就是要被選的選項,可以事陣列或者事雜湊(hash)

options與html_options則是一些選項

來這裡舉個例子吧

<%=

select("project", "teacher_id", @teachers.collect, ) %>

<%=

select("project", "student_id", ) %>

第乙個例子中,@teachers在controller是這樣的

@teachers = teacher.find(:all, :select => 'id, name')
select_tag:

select_tag(name, option_tags =nil, options = {})
在actionview::helpers::formtaghelper中定義

如果你很喜歡動手打option的話.. 那用select_tag準沒錯啦!

在select_tag中,name將會是params所接收值所用的鍵

直接看範例

<%= select_tag 'user', "cfc"

%>

這時在controller中將會用params[:user]來接收傳過來的值

但是select_tag也可以搭配options_for_select或者options_from_collection_for_select一起使用.. 來看乙個範例吧

<%= select_tag('sid', options_from_collection_for_select(@students, 'id', 'name'), :multiple => true)%>
因為加上了:multiple,所以可以接受多值選擇,這時在controller接收到的sid將會是乙個陣列,這也是我所卡住的地方..

collection_select:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
在actionview::helpers::formoptionshelper中定義

如果資訊**是資料庫的話,可以使用這個來做下拉式選項。

這個object不用我說,就是你的model

method呢?當然就是欄目了

其實說起來,這只是select+options_from_collection_for_select的組合啦!

範例:

<%= collection_select(:payment, :id, @payments, :id, :name, options =, :class =>"payment") %>

Rails簡單方法使用記錄

h 方法使用 h 方法用於防止所需輸出的字元與瀏覽器顯示混淆,自動轉義 html條目,如 email ann bill 所輸出的內容為 email ann bill 加上h 後,email ann bill 所輸出內容為 email ann bill 這樣可以避免一些潛在的安全問題以及頁面被搞亂的現...

Linux幫助使用方法詳解

首先要弄明白一點,個人認為linux裡的幫助不是為了讓我們使用它學習新知識,而是幫助我們復甦記憶。有多種方式的幫助如下 help help 或者 h man usr share doc info help bash 內建命令幫助使用help檢視 什麼是內建命令?凡是因為安裝了bash而產生的命令,稱...

Rails中scopes的幾種使用方法

不傳引數使用scope方法 class user activerecord base scope finduser,scope has content,end 傳引數使用scope方法 class user activerecord base scope finduser,username scop...