我正在爲我的Rails應用程序進行重構。我已經閱讀了很多關於將控制器邏輯移動到模型的文章,但是當我嘗試時我遇到了一些問題。Rails將控制器邏輯轉換爲模型
我需要幫助
- 瞭解是否存在以下錯誤的原因
- 要知道我應該讀什麼文件,成功地將我的所有控制器邏輯模型
因爲我還沒有爲我的應用程序做過任何重大的重構,所以首先嚐試了一個簡單的重構。
PostsController(前)
def create
@post = Post.create(params[:post])
@post.user_id = session[:user_id]
@post.num_likes = 0
@post.num_dislikes = 0
@geoip = GeoIP.new("#{Rails.root.to_s}/db/GeoIP.dat").country(request.remote_ip)
@post.user_location = @geoip.country_name
end
PostModel(新)
before_save :initialize_post
def initialize_post
self.user_id = session[:user_id]
self.num_likes = 0
self.num_dislikes = 0
@geoip = GeoIP.new("#{Rails.root.to_s}/db/GeoIP.dat").country(request.remote_ip)
self.user_location = @geoip.country_name
end
PostsController(新)
def create
@post = Post.create(params[:post])
end
但是,由於session undefined
和method request undefined
等錯誤,我甚至沒有做到這一簡單的重構。我不確定爲什麼這些行爲不能用在模型類中。
有人可以解釋這個背後的原因,並指示我一些很好的文檔,這將幫助我通過一個平滑的重構過程?
非常感謝。
我明白了。謝謝!但是除了這本書還有其他來源嗎? –
您可以在重構時查找軌道轉換劇集,這是很好的開始。 –