2011-03-04 66 views
0

我對rails非常陌生,但我真的很想融入TDD,a/b測試,MVC等等,所以我決定爲我的下一個項目使用rails。我不喜歡關於rails的一件事是人們用於函數調用的風格。以下行是什麼,我希望在一個典型的Rails用戶控制器看到:在Rails應用程序中使用括號是否合適?

validates :name, :presence => true 

我真的,因爲這使得它很難對於新手,像我明白,驗證不喜歡這種風格是一個函數,需要兩個參數,其中第二個是散列。對我來說,這句法更加清晰:

validates(:name, {:presence => true}) 

現在,我想這個項目增長,所以我會在其他的Rails開發者是誰比我更熟練地鹽漬。所以,問題是,如果我以我的風格編寫這個應用程序,那麼習慣於傳統rails方式的用戶會非常沮喪,還是可以繼續使用括號和大括號來使結構更加明確?

回答

3

他們可能會試投你島外...

儘量適應了Ruby約定。看到這裏的寶貴線索:

http://railsforum.com/viewtopic.php?id=1042

「如果我能提供的只有一個忠告給你,這將是這樣的:遵循Rails的約定」

退房非官方的表達方式(書面一個谷歌的部門)。

http://www.caliban.org/ruby/rubyguide.shtml

+0

感謝您的鏈接。我將遵循這個慣例,因爲正如你所指出的那樣,Rails社區在以「Rails」方式進行時非常重要。我猜測,如果我承諾學習這些慣例,而不是試圖逆流而行,它會使溝通更容易。 – spinlock 2011-03-07 16:58:14

1

紅寶石不需要括號,除非沒有它們會使代碼曖昧。從Ruby Koans

# (NOTE: We are Using eval below because the example code is 
    # considered to be syntactically invalid). 
    def test_sometimes_missing_parentheses_are_ambiguous 
    eval "assert_equal 5, my_global_method 2, 3" # ENABLE CHECK 
    # 
    # Ruby doesn't know if you mean: 
    # 
    # assert_equal(5, my_global_method(2), 3) 
    # or 
    # assert_equal(5, my_global_method(2, 3)) 
    # 
    # Rewrite the eval string to continue. 
    # 
    end 
3

借有沒有真正的經典風格指南紅寶石,所以你可以繼續做。是的,將會有這樣的代碼會受挫(特別是紅寶石老兵)的開發人員。

大量的Rails代碼試圖看起來像自然語言的目的,人們會爭辯說,「編程」它有點挫敗這一目的。

但是,我相信這是一個小問題 - 只要你編寫好的代碼 - 好的開發人員將適應任何風格。

相關問題