Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
目的は権限設定なのですが、内容はcurrent_userをmodelで使う方法になっております。。 背景 Rails+deviseで稼働中のAPIで、ユーザー毎の権限設定を追加したい。 いわゆるSaasで業務システムを開発しています。権限設定もいろいろなパターンがあると思うんですが、今回はデータに触れることが出来るかどうかを制御するパターンです(参照・更新できるかどうかではない) 実装検討 権限設定には大きく分けて2種類ある。。と思う。 機能を制御(主にcontrollerで制御する。参照・更新・削除できるかどうか。) データを制御(modelで制御? あるデータを扱えるかどうか。) 1はイメージしやすい。各APIを使う権限であり、controllerのメソッドを制御できれば良く、cancancan、pundit等のgemがある。 2は主に対象データのあるレコードが参照可能か、更新可能かを
初めてのツイートアプリが開発できたので、復習と頭の整理をかねてまとめました。 開発の流れに沿って登場順です。 データベース準備まで mkdir projects 「projects」というディレクトリを作成する rails new application -d mysql 「new application」というアプリケーションを「mysql」データベースを使用して作成する bundle install Gemfileの内容にしたがってGemをbundlerを利用してインストールする bundle update Gemのバージョン指定を管理している「Gemfile.lock」というファイルを更新する(Gemに対してバージョン指定を行った場合に行う) rake db:create database.ymlの内容に基づいてデータベースを新規作成する(何も起こっていないように見えるけど大丈夫)
はじめに 本記事は、mongoidでこういう検索条件で検索をしたいのだけど、どうやったらいいのか?という痒いところに手が届くように、その他のmongoidの記事では触れていない部分に触れていきます。 サンプルが最初は少ないですが、順次更新していく予定です。 RubyでMongoDBを使おうとする人のお役に立てれば幸いです。 目次 その1:件数を指定して取得したい場合 その2:特定の条件を含めない結果が欲しい場合 その3:特定のモデルとアソシエーションを組んでいるモデルがデータとして存在するかを判定したい場合 軽く前提事項を確認 mongoid はRailsにおける ActiveRecordのような感覚で、MongoDBを扱えるようにしたgemです。 実行環境 MongoDBのバージョン : 3.2.11 mongoidのバージョン : 4.0 事前にbrewの以下のコマンドでMongoDB
Docker-composeでSinatra + Nginx + MySQL を動かす時のハマりポイント - Qiita sinatraで画像投稿サービスを作ってテストをしようとした時に、MySQLの接続先をテスト用とdokcer用で切り替えてテストする必要があったのでその時のメモ。 ActiveRecord使わない方法を見つけるのが難しかったので書いておきます! 簡単なディレクトリ構成 . ├── myapp.rb ├── test │ └── test_myapp.rb 解決策 ENV['RACK_ENV']を使いましょう。 testコードの冒頭でENV['RACK_ENV'] = "test"を設定して、rubyのmysql接続部分で参照してhostを振り分ければOKです。 myapp.rb docker-composeを使う時 ENV['RACK_ENV'] は nil testす
そもそも1: ActiveRecordとは ・Ruby on Railsで採用されているOR Mapperのこと。 ・モデルとテーブルをつなぎ合わせることでRailsからテーブルのレコードにアクセスできるようにする役割がある。 ・Railsにデフォルトでインストールされており、実際に利用する際には ActiveRecord::Base というクラスを継承して使用する。 *ORM (オブジェクトリレーショナルマッピング)とは、直接SQL文を書く代わりに非常に短いコードでデータベースの読み書きを行える機能のこと。OR Mapperとは、そのためのモジュールのこと。 そもそも2: ActiveRecord::Baseメソッドとは ・ActiveRecord::Baseで定義されている「テーブルにアクセスして情報を取得するためのメソッド」のこと。 ・モデルクラスはこのActiveRecord::B
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? railsでwebサービスを運営するためにサーバー内でrailsアプリを立ち上げる方法を調べると、なぜかどのサイトでも、nginx+unicornを使っていています。 ローカルでは rails s をして立ち上げるのに、サーバー内では他のものを使うことをちょっと不思議に思うのではないでしょうか。 今回はなぜ rails s で立ち上げず、nginxやunicornを使うのかということが最終的に納得できることを目指して、解説していきたいと思います。 Webサーバーとアプリケーションサーバー railsやnginxなどの話をする前にまずはw
# This file is used by Rack-based servers to start the application. require_relative 'config/environment' p "Initialization codes should come here." p "In config.ru file, #{Rails.env}, models can also be handled #{Article.name}" run Rails.application 経緯 rails で HTTP アプリケーションを立ち上げつつ、同時に discordrb gem を使って discord bot も立ち上げたかった。 要件 RailsでHTTPアプリのServe RailsのHTTPアプリで利用するModelやJobをdiscordrbボットでも流用する r
No template found for AAController#BB railsのcontrollerにて特定のメソッドを定義したにも関わらず、設定したアクションが行われないケースにおいて、terminalを覗くとこのような記述がある場合の解決法 BB.html.erbを作成 Rails 5 No template found errorより Rails looks for a view file to render when a action is called, and it's looking for a file with the same name as the action. Railsはアクションが呼ばれた際にそれに該当する同名のファイルを探すので、ファイルをview directoryに作成すれば解決するとのこと。 redirect_toの記述忘れ 僕の場合はこちらで
https://qiita.com/keeya/items/c96a0393c76f5560ee41 https://qiita.com/puremoru0315/items/f1d459b663fd3b715dee https://qiita.com/To_BB/items/01863aa50d628c069b64 Twitterログイン認証を解説する記事は数多いですが、Railsチュートリアルなどでメール認証を実装してしまった後だと、残念ながら上の記事にあるコードをそのままコピペしてもログイン認証は機能しません。 なんでって? self.find_or_create_by(provider: provider,uid: uid)では、バリデーションに弾かれてしまうからです。 find_or_created_byメソッドは、引数で渡したカラムでfindをかけて引っかからなかったらcrea
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く