rails 中的form for彙總總結

2021-07-25 11:38:13 字數 1075 閱讀 1865

1、form_for方法是actionview::helpers::formhelper模組內的方法,所以可以在actionview的例項中直接呼叫

2、 from_for方法的原型為form_for(record, options = {}, &block),其中record可以是字串和符號,這時,引數通過params[string/:symbol][:field]傳遞;record也可以是示例物件,這時引數通過params[instance.class.lowercase][:field]傳遞,hash中的key與例項的型別名有關,而與instance本身的變數名字無關。

3、當record在routes.rb中定義為resources時,可以不定義url引數,預設情況下,rails會根據record是否為新建立例項來自動安排url,其實根據的是activerecord::persistence.new_record?()的結果是否為true來判斷。

<%= form_for @post do |f| %> ... <% end %> 

生成

<%=

form_for @post, as: :post, url: post_path(@post), method: :patch, html: do |f| %>

activerecord::persistence.new_record?()==false的情況:
<%= form_for(post.new) do |f| %> ... <% end %>

生成<%= form_for @post, as: :post, url: posts_path, html: do |f| %>

... <% end %> 4

、url_for會使用activemodel::model.persisted?()來判斷例項是否是新建的,還會使用activerecord::integration.to_param方法,預設返回的是id,用來生成url。

5、

Rails中的validate校驗

可以使用validates presence of方法宣告模型類別非空驗證 validates presence of name,message 姓名不能為空 validates presence of message 性別不能為空 還可一次為多個屬性驗證 validates presence of...

rails中遞迴的煩悶

因為要實現樹展現,當然用非遞迴也可以的,不過考慮靈活性和維護簡便還是用遞迴實現,以下的例子是在helper中使用的,不過rails的輸出始終讓我有點找不到北,畢竟在webwork中如果實在要輸出依然可以通過response得到輸入流的,但rails似乎沒有,於是只能用如下如此愚蠢的方法實現了 pro...

Rails 中的 check box 用法

b 來自官方 b check box puppy gooddog yes no 說明 1.是用來放一些html的option的,比如,你希望你的check box被選中,check box puppy gooddog yes no 又比如,你希望你的多選框,有個class和css對應 check b...