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
ただし、 ANDなどのエラーが原因で、この単純なリファクタリングでも実行できませんでしたmethod request undefined
。これらのアクションをモデルクラスで使用できない理由がわかりません。
誰かがこの背後にある理由を説明し、スムーズなリファクタリングプロセスを実行するのに役立ついくつかの優れたドキュメントに私を導くことができますか?
どうもありがとう。