-
自定義 Model 網(wǎng)址
方案一:網(wǎng)址ID+數(shù)字
在model中定義 to_param
函數(shù)
def to_param
"#{self.id}-#{self.name}"
end
方案二: 亂數(shù) ID
新增一個(gè)字段,在創(chuàng)建時(shí)此字段產(chǎn)生隨機(jī)數(shù)
通過(guò)這個(gè)字段來(lái)對(duì)文章進(jìn)行CURD操作,包括網(wǎng)址顯示
方案三: 用戶可以自定義 ID
對(duì)新增的id進(jìn)行前臺(tái)編輯
-
多語(yǔ)言設(shè)置
- 配置中文語(yǔ)系
配置默認(rèn)語(yǔ)系
class Application < Rails::Application
config.i18n.default_locale = "zh-CN"
end
注意 YAML 格式的縮排必須使用兩個(gè)空格,Tab 是不允許的。直接復(fù)制貼上可能會(huì)有問(wèn)題,請(qǐng)小心檢查縮排。
<h1><%= t("event_list") %></h1>
也可以寫(xiě)成 t("event_list", :scope => "admin") 結(jié)果是一樣的
其中 t 等同于 I18n.t,是個(gè) Helper 方法,會(huì)根據(jù)語(yǔ)系來(lái)做字符串的替換
新增詞匯檔案需要重啟服務(wù)器,修改詞匯不需要。
- 詞匯中內(nèi)嵌變量
有些句子可能會(huì)需要內(nèi)嵌變量,可以使用 %{variable_name} 的語(yǔ)法 - 安裝 Rails 中文翻譯詞匯檔 ,安裝 Devise 翻譯檔
- Model 字段翻譯
新增config/locales/events.yml
注意其中的語(yǔ)句和正常的zh-CN.yml不一樣,前面要加上activerecord和attributes
zh-CN:
activerecord:
attributes:
event:
name:
description: "描述"
其實(shí),翻譯檔檔名叫 events.yml、zh-TW.yml、en.yml 什么都無(wú)所謂,重要的是 YAML 結(jié)構(gòu)中第一層要對(duì)應(yīng)locale的名稱(chēng),也就是 zh-CN,Rails 會(huì)加載 config/locales 下所有的YAML詞匯檔案。
- 讓使用者可以切換多語(yǔ)系
- 語(yǔ)系樣板,可以對(duì)一個(gè)頁(yè)面使用中文或英文樣板
app/views/pages/faq.zh-CN.html.erb
app/views/pages/faq.en.html.erb
這樣就會(huì)自動(dòng)識(shí)別
-
時(shí)區(qū)設(shè)置
配置北京時(shí)區(qū)
config.time_zone = "Beijing"
根據(jù)用戶配置切換時(shí)區(qū)
在users表中建立一個(gè)時(shí)區(qū)字段,再在前臺(tái)進(jìn)行編輯,網(wǎng)站啟動(dòng)是把這個(gè)字段值賦值給Time.zone
-
格式化日期時(shí)間
strftime 格式化時(shí)間
<%= event.created_at.strftime("%Y/%m/%d %I:%M %p") %>
strftime用法,參考https://ruby-doc.org/core-2.3.4/Time.html#strftime-method
Rails 時(shí)間 to_s 方法
或者在config/application.rb
中自定義格式,如下
Time::DATE_FORMATS.merge!(:default => '%Y/%m/%d %I:%M %p', :ymd => '%Y/%m/%d')
-
表單單選ui(固定選項(xiàng)無(wú)model)
使用select下拉選單
使用Radio Button UI (選項(xiàng)少于3個(gè))
使用Radio 加上 Bootstrap Button 樣式
-
表單單選ui和select2 plugin
其中單選UI在document中沒(méi)有生效,待查
-
表單多選 UI 和 Select2 Plugin