{"id":37988,"date":"2024-07-16T06:27:39","date_gmt":"2024-07-16T06:27:39","guid":{"rendered":"https:\/\/www.railscarma.com\/?p=37988"},"modified":"2024-07-16T06:27:43","modified_gmt":"2024-07-16T06:27:43","slug":"pundit-gem%e3%81%a7rails%e3%81%ae%e8%aa%8d%e5%8f%af%e3%82%92%e3%83%9e%e3%82%b9%e3%82%bf%e3%83%bc%e3%81%99%e3%82%8b","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/pundit-gem%e3%81%a7rails%e3%81%ae%e8%aa%8d%e5%8f%af%e3%82%92%e3%83%9e%e3%82%b9%e3%82%bf%e3%83%bc%e3%81%99%e3%82%8b\/","title":{"rendered":"Pundit Gem\u3067Rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"37988\" class=\"elementor elementor-37988\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b9f0dee elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b9f0dee\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-927286c\" data-id=\"927286c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5798ecc elementor-widget elementor-widget-text-editor\" data-id=\"5798ecc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u8a8d\u53ef\u306f\u3001\u30e6\u30fc\u30b6\u304c\u8a31\u53ef\u3055\u308c\u305f\u30ea\u30bd\u30fc\u30b9\u306b\u3057\u304b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u3001\u3042\u3089\u3086\u308bWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u91cd\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3059\u3002Pundit\u306fRuby on Rails\u7528\u306e\u8a8d\u53ef\u30e9\u30a4\u30d6\u30e9\u30ea\u3068\u3057\u3066\u4eba\u6c17\u304c\u3042\u308a\u3001\u958b\u767a\u8005\u306f\u304d\u3081\u7d30\u304b\u3044\u30a2\u30af\u30bb\u30b9\u30eb\u30fc\u30eb\u3092\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001Ruby on Rails\u3067Pundit gem\u3092\u4f7f\u3063\u3066\u8a8d\u53ef\u3092\u884c\u3046\u65b9\u6cd5\u3092\u8aac\u660e\u3057\u307e\u3059\u3002 <a href=\"https:\/\/www.railscarma.com\/ja\/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%ac%e3%83%bc%e3%83%ab%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e9%96%8b%e7%99%ba\/\">Rails\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/a>\u4f8b\u3092\u6319\u3052\u3066\u8aac\u660e\u3059\u308b\u3002<\/p>\n<p><\/p>\n<h2><b>\u30b9\u30c6\u30c3\u30d7\u30fb\u30d0\u30a4\u30fb\u30b9\u30c6\u30c3\u30d7\u30fb\u30ac\u30a4\u30c9&nbsp;<\/b><\/h2>\n<p><b>1.Rails\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306bPundit\u3092\u8ffd\u52a0\u3059\u308b<\/b><\/p>\n<p>\u307e\u305a\u3001Gemfile\u306bPundit\u3092\u8ffd\u52a0\u3057\u3001bundle install\u3092\u5b9f\u884c\u3059\u308b\uff1a<\/p>\n<p><\/p>\n<pre>\u5b9d\u77f3\u300c\u8a55\u8ad6\u5bb6<\/pre>\n<p><br><\/p>\n<pre>\u30d0\u30f3\u30c9\u30eb\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/pre>\n<p>\u6b21\u306b\u3001Pundit\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\u3057\u307e\u3059\uff1a<\/p>\n<p><\/p>\n<pre>rails generate pundit:install<\/pre>\n<p>\u3053\u308c\u306f <b>application_policy.rb<\/b> \u30d5\u30a1\u30a4\u30eb\u3092 app\/policies \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u7f6e\u304f\u3002<\/p>\n<p><b>2.\u30dd\u30ea\u30b7\u30fc\u306e\u5b9a\u7fa9<br><\/b>Pundit\u306e\u30dd\u30ea\u30b7\u30fc\u306f\u3001\u8a8d\u53ef\u30ed\u30b8\u30c3\u30af\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u305fPORO\uff08Plain Old Ruby Objects\uff09\u3067\u3059\u3002\u305d\u308c\u305e\u308c\u306e\u30dd\u30ea\u30b7\u30fc\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30e2\u30c7\u30eb\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u3059\u3002\u7c21\u5358\u306a\u4f8b\u3068\u3057\u3066\u3001Post\u30e2\u30c7\u30eb\u304c\u3042\u308a\u3001\u305d\u308c\u306b\u5bfe\u3059\u308b\u8a8d\u53ef\u30eb\u30fc\u30eb\u3092\u5b9a\u7fa9\u3059\u308b\u5834\u5408\u3092\u8003\u3048\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p><b>Post\u30e2\u30c7\u30eb\u306e\u30dd\u30ea\u30b7\u30fc\u3092\u4f5c\u6210\u3059\u308b\uff1a<\/b><\/p>\n<p><\/p>\n<pre>rails\u306fpundit:policy post\u3092\u751f\u6210\u3059\u308b<\/pre>\n<p>\u3053\u308c\u306b\u3088\u308a <b>post_policy.rb <\/b>\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3002<\/p>\n<p><b>3.\u8a8d\u8a3c\u30ed\u30b8\u30c3\u30af\u306e\u5b9f\u88c5<br><\/b>post_policy.rb\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304d\u3001\u8a8d\u53ef\u30eb\u30fc\u30eb\u3092\u5b9a\u7fa9\u3059\u308b\uff1a<\/p>\n<pre>class PostPolicy &lt; ApplicationPolicy\n  def index?\n    true\n  \u7d42\u4e86\n\n  def show?\n    true\n  \u7d42\u4e86\n\n  def create?\n    user.present?\n  end\n\n  def update?\n    user.present? &amp;&amp; user == record.user\n  end\n\n  def destroy?\n    user.present? &amp;&amp; user == record.user\n  end\n\u7d42\u4e86<br><\/pre>\n<p>\u3053\u3053\u3067\u306f\u3001\u5404\u30a2\u30af\u30b7\u30e7\u30f3\uff08index?\u3001show?\u3001create?\u3001update?\u3001destroy?\uff09\u306b\u5bfe\u5fdc\u3059\u308b\u30e1\u30bd\u30c3\u30c9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u3068\u30a2\u30af\u30bb\u30b9\u3055\u308c\u3066\u3044\u308b\u30ec\u30b3\u30fc\u30c9\u306b\u57fa\u3065\u3044\u3066\u771f\u304b\u507d\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n<p><b>4.\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u3067\u306e\u30dd\u30ea\u30b7\u30fc\u306e\u4f7f\u7528<br><\/b>\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u3067\u306f\u3001Pundit \u3092\u4f7f\u3063\u3066\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u8a8d\u53ef\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u305a\u3001Pundit \u30e2\u30b8\u30e5\u30fc\u30eb\u3092 ApplicationController \u306b\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3057\u307e\u3059\uff1a<\/p>\n<p><\/p>\n<pre>class ApplicationController &lt; ActionController::Base<br>\u30d1\u30f3\u30c7\u30a3\u30c3\u30c8<br>\u7d42\u308f\u308a<\/pre>\n<p>\u305d\u3057\u3066\u3001authorize \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066 PostsController \u306e\u8a8d\u53ef\u3092\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3059\uff1a<\/p>\n<p><\/p>\n<pre>class PostsController &lt; ApplicationController\n  before_action :authenticate_user\uff01\n  before_action :set_post, only: [:show, :edit, :update, :destroy] \u3067\u3059\u3002\n\n  def index\n    posts = Post.all\n    posts\u3092\u8a8d\u8a3c\u3059\u308b\n  \u7d42\u4e86\n\n  def show\n  \u7d42\u4e86\n\n  def new\n    post = Post.new\n    post\u3092\u8a8d\u53ef\u3059\u308b\n  \u7d42\u4e86\n\n  def create\n    post = current_user.posts.build(post_params)\n    post\u3092\u8a8d\u53ef\u3059\u308b\n    if @post.save\n      redirect_to @post, notice: &#039;\u6295\u7a3f\u306f\u6b63\u5e38\u306b\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f\u3002&#039;\n    else\n      render :new\n    \u7d42\u4e86\n  \u7d42\u4e86\n\n  def edit\n    \u6295\u7a3f\u3092\u627f\u8a8d\u3059\u308b\n  \u7d42\u4e86\n\n  def update\n    post\u3092\u8a8d\u53ef\u3059\u308b\n    if @post.update(post_params)\n      redirect_to @post, notice: &#039;\u6295\u7a3f\u306f\u6b63\u5e38\u306b\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002&#039;\n    else\n      render :edit\n    end\n  \u7d42\u4e86\n\n  def destroy\n    post\u3092\u8a8d\u53ef\u3059\u308b\n    post.destroy\n    redirect_to posts_url, notice: &#039;\u6295\u7a3f\u306f\u6b63\u5e38\u306b\u7834\u68c4\u3055\u308c\u307e\u3057\u305f\u3002&#039;\n  \u7d42\u4e86\n\n  \u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\n\n  def set_post\n    post = Post.find(params[:id])\n  \u7d42\u4e86\n\n  def post_params\n    params.require(:post).permit(:title, :body)\n  end\n\u7d42\u4e86<br><\/pre>\n<p>\u3053\u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u3067\u306f\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u524d\u306bauthorize\u3092\u4f7f\u7528\u3057\u3066\u6a29\u9650\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><b>5.\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3078\u306e\u5bfe\u5fdc<br><\/b>Pundit \u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u6a29\u9650\u304c\u306a\u3044\u5834\u5408\u306b Pundit::NotAuthorizedError \u3092\u767a\u751f\u3055\u305b\u307e\u3059\u3002\u3053\u306e\u30a8\u30e9\u30fc\u306f\u3001ApplicationController \u3067\u30b0\u30ed\u30fc\u30d0\u30eb\u306b\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\uff1a<\/p>\n<pre>class ApplicationController &lt; ActionController::Base\n  \u30a4\u30f3\u30af\u30eb\u30fc\u30c9 Pundit\n\n  rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized\n\n  private\n\n  def user_not_authorized\n    flash[:alert] = &quot;\u3053\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002&quot;\n    redirect_to(request.referrer || root_path)\n  \u30a8\u30f3\u30c9\n\u7d42\u4e86<br><\/pre>\n<p>\u3053\u3046\u3059\u308b\u3053\u3068\u3067\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u4e0d\u6b63\u306a\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u3001\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u3068\u3082\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3055\u308c\u308b\u3002<\/p>\n<p><\/p>\n<h2><b>\u7d50\u8ad6<\/b><\/h2>\n<p>Rails\u306e\u8a8d\u53ef\u306bPundit\u3092\u4f7f\u3046\u3068\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30ea\u30bd\u30fc\u30b9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u5f37\u529b\u304b\u3064\u67d4\u8edf\u306b\u5236\u5fa1\u3067\u304d\u307e\u3059\u3002\u30dd\u30ea\u30b7\u30fc\u3092\u5b9a\u7fa9\u3057\u3066\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u3067\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30e6\u30fc\u30b6\u304c\u8a31\u53ef\u3055\u308c\u305f\u30a2\u30af\u30b7\u30e7\u30f3\u3057\u304b\u5b9f\u884c\u3067\u304d\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u3053\u3067\u306f\u57fa\u672c\u7684\u306a\u3053\u3068\u3092\u8aac\u660e\u3057\u307e\u3057\u305f\u304c\u3001Pundit\u306f\u30b9\u30b3\u30fc\u30d7\u3084\u30ab\u30b9\u30bf\u30e0\u30dd\u30ea\u30b7\u30fc\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u306a\u3069\u3001\u3088\u308a\u8907\u96d1\u306a\u30b7\u30ca\u30ea\u30aa\u3082\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3088\u308a\u8a73\u7d30\u306a\u60c5\u5831\u306b\u3064\u3044\u3066\u306f&nbsp;<a href=\"https:\/\/github.com\/varvet\/pundit\" target=\"_blank\" style=\"font-size: 16px; background-color: rgb(255, 255, 255);\">Pundit GitHub\u30ea\u30dd\u30b8\u30c8\u30ea<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">\u95a2\u9023\u8a18\u4e8b<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Offliberty Ruby Gem\u3068\u306f\uff1f\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/what-is-offliberty-ruby-gem-and-how-it-works\/?related_post_from=41304\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\u30aa\u30d5\u30ea\u30d0\u30c6\u30a3\u30fb\u30eb\u30d3\u30fc\u30fb\u30b8\u30a7\u30e0\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Offliberty Ruby Gem\u3068\u306f\uff1f\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/what-is-offliberty-ruby-gem-and-how-it-works\/?related_post_from=41304\">\r\n        Offliberty Ruby Gem\u3068\u306f\uff1f  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Rails\u306elink_to\u30e1\u30bd\u30c3\u30c9\uff1a\u4f8b\u306b\u3088\u308b\u5b8c\u5168\u30ac\u30a4\u30c9\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/rails-link_to-method-the-complete-guide-with-examples\/?related_post_from=41296\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Rails link_to\u30e1\u30bd\u30c3\u30c9\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Rails\u306elink_to\u30e1\u30bd\u30c3\u30c9\uff1a\u4f8b\u306b\u3088\u308b\u5b8c\u5168\u30ac\u30a4\u30c9\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/rails-link_to-method-the-complete-guide-with-examples\/?related_post_from=41296\">\r\n        Rails\u306elink_to\u30e1\u30bd\u30c3\u30c9\uff1a\u4f8b\u306b\u3088\u308b\u5b8c\u5168\u30ac\u30a4\u30c9  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby on Rails\u3092\u4f7f\u3063\u3066\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306aSaaS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/how-to-build-a-scalable-saas-platform-using-ruby-on-rails\/?related_post_from=41273\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Ruby on Rails\u3092\u4f7f\u3063\u3066SaaS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u69cb\u7bc9\u3059\u308b\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby on Rails\u3092\u4f7f\u3063\u3066\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306aSaaS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/how-to-build-a-scalable-saas-platform-using-ruby-on-rails\/?related_post_from=41273\">\r\n        Ruby on Rails\u3092\u4f7f\u3063\u3066\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306aSaaS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\u30ac\u30a4\u30c9\uff082026\uff09\u4f8b\u4ed8\u304d\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/ruby-regex-match-guide-with-examples\/?related_post_from=41249\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\u30eb\u30d3\u30fc\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\u30ac\u30a4\u30c9\uff082026\uff09\u4f8b\u4ed8\u304d\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/ruby-regex-match-guide-with-examples\/?related_post_from=41249\">\r\n        Ruby\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\u30ac\u30a4\u30c9\uff082026\uff09\u4f8b\u4ed8\u304d  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Authorization is a critical component of any web application, ensuring that users can only access resources they are permitted to. Pundit is a popular authorization library for Ruby on Rails that allows developers to define fine-grained access rules. This article will guide you through using the Pundit gem for authorization in a Rails application, complete with an example. Step-by-Step Guide&nbsp; 1. Adding Pundit to Your Rails Application First, add Pundit to your Gemfile and run bundle install: gem &#8216;pundit&#8217; bundle install Next, generate the Pundit installation files: rails generate pundit:install This will create an application_policy.rb file in the app\/policies directory, which serves as the default policy for all models. 2. &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\u30ac\u30a4\u30c9\uff082026\uff09\u4f8b\u4ed8\u304d<\/span> \u3082\u3063\u3068\u8aad\u3080 \"<\/a><\/p>","protected":false},"author":5,"featured_media":37993,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1224],"tags":[],"class_list":["post-37988","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mastering Authorization in Rails with Pundit Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Mastering Authorization in Rails with Pundit Gem. This guide covers setup, defining policies, and authorization in your Rails project.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/pundit-gem\u3067rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mastering Authorization in Rails with Pundit Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Mastering Authorization in Rails with Pundit Gem. This guide covers setup, defining policies, and authorization in your Rails project.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/pundit-gem\u3067rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-16T06:27:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-16T06:27:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nikhil\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nikhil\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/\"},\"author\":{\"name\":\"Nikhil\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/1aa0357392b349082303e8222c35c30c\"},\"headline\":\"Mastering Authorization in Rails with Pundit Gem\",\"datePublished\":\"2024-07-16T06:27:39+00:00\",\"dateModified\":\"2024-07-16T06:27:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/\"},\"wordCount\":383,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png\",\"articleSection\":[\"Blogs\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/\",\"name\":\"Mastering Authorization in Rails with Pundit Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png\",\"datePublished\":\"2024-07-16T06:27:39+00:00\",\"dateModified\":\"2024-07-16T06:27:43+00:00\",\"description\":\"Mastering Authorization in Rails with Pundit Gem. This guide covers setup, defining policies, and authorization in your Rails project.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png\",\"width\":800,\"height\":300,\"caption\":\"Mastering Authorization in Rails with Pundit Gem\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mastering Authorization in Rails with Pundit Gem\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/1aa0357392b349082303e8222c35c30c\",\"name\":\"Nikhil\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054f31ff35e9917aaf631b8025ef679d42dd21792012d451763138d66d02a4c0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054f31ff35e9917aaf631b8025ef679d42dd21792012d451763138d66d02a4c0?s=96&d=mm&r=g\",\"caption\":\"Nikhil\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pundit Gem\u3067Rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b - RailsCarma - \u30aa\u30d5\u30b7\u30e7\u30a2\u958b\u767a\u306b\u7279\u5316\u3057\u305fRuby on Rails\u958b\u767a\u4f1a\u793e","description":"Pundit Gem\u3067Rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3002\u3053\u306e\u30ac\u30a4\u30c9\u3067\u306f\u3001Rails\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3001\u30dd\u30ea\u30b7\u30fc\u306e\u5b9a\u7fa9\u3001\u6a29\u9650\u4ed8\u4e0e\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/pundit-gem\u3067rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\/","og_locale":"ja_JP","og_type":"article","og_title":"Mastering Authorization in Rails with Pundit Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Mastering Authorization in Rails with Pundit Gem. This guide covers setup, defining policies, and authorization in your Rails project.","og_url":"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/pundit-gem\u3067rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2024-07-16T06:27:39+00:00","article_modified_time":"2024-07-16T06:27:43+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png","type":"image\/png"}],"author":"Nikhil","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u57f7\u7b46\u8005":"Nikhil","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"2\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/"},"author":{"name":"Nikhil","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/1aa0357392b349082303e8222c35c30c"},"headline":"Mastering Authorization in Rails with Pundit Gem","datePublished":"2024-07-16T06:27:39+00:00","dateModified":"2024-07-16T06:27:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/"},"wordCount":383,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png","articleSection":["Blogs"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/","url":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/","name":"Pundit Gem\u3067Rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b - RailsCarma - \u30aa\u30d5\u30b7\u30e7\u30a2\u958b\u767a\u306b\u7279\u5316\u3057\u305fRuby on Rails\u958b\u767a\u4f1a\u793e","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png","datePublished":"2024-07-16T06:27:39+00:00","dateModified":"2024-07-16T06:27:43+00:00","description":"Pundit Gem\u3067Rails\u306e\u8a8d\u53ef\u3092\u30de\u30b9\u30bf\u30fc\u3002\u3053\u306e\u30ac\u30a4\u30c9\u3067\u306f\u3001Rails\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3001\u30dd\u30ea\u30b7\u30fc\u306e\u5b9a\u7fa9\u3001\u6a29\u9650\u4ed8\u4e0e\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/07\/Mastering-Authorization-in-Rails-with-Pundit-Gem.png","width":800,"height":300,"caption":"Mastering Authorization in Rails with Pundit Gem"},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/mastering-authorization-in-rails-with-pundit-gem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Mastering Authorization in Rails with Pundit Gem"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - \u30aa\u30d5\u30b7\u30e7\u30a2\u958b\u767a\u306b\u7279\u5316\u3057\u305f Ruby on Rails \u958b\u767a\u4f1a\u793e","description":"RailsCarma \u306f\u30d0\u30f3\u30ac\u30ed\u30fc\u30eb\u306e Ruby on Rails \u958b\u767a\u4f1a\u793e\u3067\u3059\u3002\u5f53\u793e\u306f\u7c73\u56fd\u3068\u30a4\u30f3\u30c9\u3092\u62e0\u70b9\u3068\u3059\u308b\u30aa\u30d5\u30b7\u30e7\u30a2 Ruby on Rails \u958b\u767a\u3092\u5c02\u9580\u3068\u3057\u3066\u3044\u307e\u3059\u3002\u7d4c\u9a13\u8c4a\u5bcc\u306a Ruby on Rails \u958b\u767a\u8005\u3092\u96c7\u3063\u3066\u3001\u7a76\u6975\u306e Web \u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3092\u5b9f\u73fe\u3057\u307e\u3057\u3087\u3046\u3002","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"\u30ec\u30fc\u30eb\u30ab\u30fc\u30de","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/1aa0357392b349082303e8222c35c30c","name":"\u30cb\u30ad\u30eb","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054f31ff35e9917aaf631b8025ef679d42dd21792012d451763138d66d02a4c0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054f31ff35e9917aaf631b8025ef679d42dd21792012d451763138d66d02a4c0?s=96&d=mm&r=g","caption":"Nikhil"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts\/37988","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/comments?post=37988"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts\/37988\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/media\/37993"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/media?parent=37988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/categories?post=37988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/tags?post=37988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}