2012-06-04 46 views
1

我正在使用rails 3與bundler,我使用bundler安裝了一個gem,現在我需要通過修改gem的控制器來稍微修改gem的流程,我應該這樣做,我確定有一個命令在本地安裝文件,所以我可以修改它,我嘗試通過創建另一個具有相同名稱但聽起來不起作用的控制器來覆蓋控制器。如何修改rails 3項目中的gem文件

+0

你只是想添加或修改一個方法,或者你想做一個更根本的改變? – DVG

+0

我安裝了一個名爲contact-us的gem,我需要改變控制器的行爲,如果我可以實現這一點,無論如何,我會很高興通過修改方法或其他任何東西 – Eqbal

回答

3

你就應該能夠使一個控制器,從寶石控制器繼承和覆蓋方法的行爲,你認爲合適

class MyController < ContactUs::ContactsController 
    def create 
    # my code that changes the behavior 
    end 
end 

然後你可能要告訴你的路線去你的控制器

resources :contacts, 
    :controller => 'my_controller' 
+0

驚人的,感謝您的幫助,它正是我正在尋找的,我猜這條路線應該是資源:contacts,:controller =>'my',以防你命名文件my_controller – Eqbal

9

叉它在github上,進行更改,並指出你的Gemfile到分叉回購像這樣:

gem "contact-us", :git => "git://github.com/eqbal/contact-us.git"