Rails アプリからブログ モデルとコントローラーを抽出しようとしています。Rails Engine を呼び出して、メイン アプリのルートBlog
にマウントします。/blog
私のBlog
エンジンには、PostsController
通常の CRUD アクションを持つ があります。問題は、メインの Rails アプリの認証方法を使用したいということです。
# app/controllers/blog/posts_controller.rb
module Blog
class PostsController < ApplicationController
# Basically I want to have access to the require_login method
# from the main app.
before_filter :require_login, only: [:new, :create]
def new
@post = Post.new
authorize! :create, Post
end
end
end
また、承認のための CanCan 機能を確認できるように、User モデルにアクセスする必要があります。たとえば、ブログ投稿を作成できるのは管理者のみです。
# app/models/blog/ability.rb
module Blog
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
# The user.admin? method is defined on the User class
# from the main rails app.
if user.admin?
can [:create, :update], Post
end
end
end
end
これらのことを達成する方法はありますか?