2017-07-02 62 views
0

我工作的Rails的博客教程和語法雲:爲什麼form_for方法以符號爲參數?

<%= form_for :article do |f| %> 

我真的不明白,當一個輔助方法或方法接受一個符號作爲參數,當它不...

+0

https://apidock.com/rails/ActionView/Helpers/FormHelper/form_for – Pavan

+0

您可以在#new視圖中使用':article':以前沒有記錄:文章存在,您正在創建一篇新文章,以便您只需要告訴欄杆這是你正在做的一篇文章的一種形式。在編輯視圖中,您可以使用'@ article'而不是':article',然後表單將爲您要修改的文章選取已知值(然後預填表格) – Maxence

回答

3

form_for接受多種類型的參數。

(a)中的符號:的form_for:文章

form elements can accessed in controller by params[:article] 

(b)中的字符串:的form_for 「製品」

form elements can be accessed in controller by params[:article] 

(C)對象:的form_for @article

(1) Here @article is expected to contain an instance of Article. In the controller this form elements can be accessed through params[:article]. 

    (2) If a form is expected to be accessed through a custom name, it can be done by using :as operator. form_for @post, as: :my_post 

(d)array:form_for [:my,@article]

:my is used to namespace @article. With params[:my_article] form elements can be accessed in controller 
0

需要一些額外的細節來理解答案:該函數實際上將符號,字符串或路徑作爲可能的參數。

回答「爲什麼」的問題:缺省使用符號,因爲比較比直接字符串比較快。

+0

我不確定這是是一個實際的*「答案」*。似乎更適合作爲評論 – engineersmnky

相關問題