タグ

railsに関するteracy_junkのブックマーク (118)

  • Rails の CVE-2019-5418 は RCE (Remote code execution) です

    CVE-2019-5418_is_RCE.md RailsCVE-2019-5418 は RCE (Remote code execution) です 2019-03-23 更新 Remote Code Executionとして、Advisoryが更新された。 https://groups.google.com/d/msg/rubyonrails-security/zRNVOUhKHrg/GmmcVXcmAAAJ Thanks to @sorah @tenderlove 前置き これは休日に書いた記事で所属している組織とは一切の関係がない。 概要 CVE-2019-5418 は実際のところ高確率でRCEなのだが File Content Disclosure という聞き慣れない名前で公表されて、CVE-2019-5419 で DoSが出来るという内容になっている やあ、脆弱性の開示方

    Rails の CVE-2019-5418 は RCE (Remote code execution) です
    teracy_junk
    teracy_junk 2019/03/22
    『CVE-2019-5418 が成立する環境においては、CVE-2019-5420の「開発環境限定」という条件が外れて、単に CVE-2019-5420 によるRCEが出来る』合わせ技一本
  • 永久保存版Railsアップデートガイド - pixiv inside

    はじめまして、2018年7月入社の sue445です。自称「フルスタックキュアエンジニア」です。最近はpixiv PAYのチームでRailsを書いたり社内gemを作ったりしています。 好きなプリキュアはキュアピースです。 前置き 先日Rails 5.2.1がリリースされました https://weblog.rubyonrails.org/2018/8/7/Rails-5-2-1-has-been-released/ pixiv PAYでもその対応を行っていて、先日番環境にRails 5.2.1を投入しました 💪 ググると特定のバージョンでのアップデート方法はいろいろ見つかるのですが、どのバージョンでも使える汎用的な方法が意外になかったので紹介しようと思います。 Rails 4.1系以降はだいたいこの方法でアップデートしてきたのでそれなりに実績のある手法だと思います。 筆者スペック 初め

    永久保存版Railsアップデートガイド - pixiv inside
  • フロントエンド全然わからないマンが、ちょっとでも見た目のいいWebサービスを作ろうとしてやったこと - Qiita

    はじめに サーバーサイドプログラミングを勉強していると、自分でWebサービスを作りたいという気持ちがわいてくるものです(私はそうでした)。しかし、ここで大きな問題が立ちはだかります。どんなにすごい機能をつけても、いい感じのデザインのWebサービスでないとそもそも使ってもらえないのです。 試しに、QiitaのトップページのCSSを無効にしてみました。使える機能は変わらないはずなのに、全く使う気が起きなくなりますね。 しかしそうは言っても、フロントエンドの経験がほとんどないとどうすれば見た目をいい感じにできるかがわかりません。今回は、ちょっとでも見た目のいいWebサービスを作るために、そんな状況の私がやってみたことをまとめました。 (この記事は、あくまで私が試行錯誤した結果をまとめたものであり、その結果出来上がったサービスの見た目の良さを保証するものではありません) 書いている人のプロフィール

    フロントエンド全然わからないマンが、ちょっとでも見た目のいいWebサービスを作ろうとしてやったこと - Qiita
  • 齢30を越えてようやく気づいたWebエンジニアの勉強に関するベストプラクティス - おうさまのみみはロバのみみ

    …を書こうと思っていた矢先に↓が投稿された。 しかもぼくが書こうとした内容よりも理論付けられていたり、充実した内容だったり、深掘りされてたりして非常に良いのでこれ読めばだいたい終わるし書かなくていいじゃんね!ってなった。 完。 employment.en-japan.com これを読んだあとで「あーこんな良いエントリあるならぼく書かなくてもいんじゃね?っていうかぼくも知らない内容書かれてて充実度で完敗だし書く必要性無くね??」とか思って書かないでおこうかと思っていたのだけども 別にぼくが似たようなことを書いてもPV数やまとまっている内容の充実差で件のエントリに微々たる影響を及ぼすこともなかろう、あと単純に書いて頭の中を整理しておこうと思い直したので今書いてる。 タイトルは元々の主旨なのだけどそれは↑を読めば満足できると思うのでこのエントリはそこからちょっと外れているものを書いておこうと思う

    齢30を越えてようやく気づいたWebエンジニアの勉強に関するベストプラクティス - おうさまのみみはロバのみみ
  • Rails アンチパターン - 錆びついたファクトリー (factory_girl) - アジャイルSEの憂鬱

    技術書典は書く側で参加したい気持ちはあるけど、書くネタと書く時間があるかどうか…— 神速@リリカルエンジニア (@sinsoku_listy) 2017年4月9日 あー、自分の知ってるRailsアンチパターンとか書きたいかも。自分の犯した罪(アンチパターン)を贖罪したい…。— 神速@リリカルエンジニア (@sinsoku_listy) 2017年4月9日 技術書典2 に行ったら無性にを書きたくなったけど、書くのは 面倒 大変です。 というわけで、とりあえずブログに記事を1つ書いてみた。 factory_girl factory_girl はテスト用データを作成するときに使う gem です。 下記は User のモデルを定義するファクトリーです。 FactoryGirl.define do factory :user do first_name "John" last_name "Doe

    Rails アンチパターン - 錆びついたファクトリー (factory_girl) - アジャイルSEの憂鬱
  • 15分で勤怠システムをつくる方法 - Qiita

    これはなに。 Supership株式会社 Advent Calendar 2016 の22日目です。 15分で勤怠システムを作る方法 15分でタイムカード機能を作る方法。(15分はちょっと盛ってる。) 経緯 弊社採用のwebの勤怠管理システム、利用者側から見るとあんまりイケてないなー。操作が面倒。面倒すぎて、ちゃんと打刻した事ない。 そういや昔の (x68k) 某パソコンのコミュニティの合言葉が 「無い物は作る」 だったなー。某perlの壁のように偉大な人も言ってたなー。怠惰であれ。 よし、せめてタイムカードのパンチング部分だけでも作ろう!!! 名づけて、 PunchDrunker !! ちなみに僕はアルコールを嗜みません。 そして、advent calenderだし、どうせやるなら15分という時間しばりで!! 取り敢えずざっと考える とにかく15分で作る為に楽出来る処は楽する。 いつも持

    15分で勤怠システムをつくる方法 - Qiita
  • レガシーな独自フレームワークから脱却してRailsへ徐々に移行している話 - メドピア開発者ブログ

    みなさんこんにちわ。 メドピアでエンジニアをやっている内田と申します。 現在メドピアではPHPで作られたレガシーな独自フレームワーク (以下FW) からRailsへと移行するプロジェクトが進んでいます。 今回は移行に向けて行ったことについて共有したいと思います。 移行の計画 メドピア株式会社では、医師限定のコミュニティサイト「MedPeer 」を運営しています。 「MedPeer 」サービス内では、薬剤評価掲示版、症例相談、Forum、ニュースなど、医師同士が情報交換をするための、機能の異なる複数のサービスを提供しています。 それらサービスの内部では7年前に作られたPHPの独自FWが採用されており、コードが肥大化したことで機能の変更や追加がとても困難になっていたことが課題でした。 そうした課題を解決するために、アーキテクチャの見直しを含めたリプレースがエンジニアの主導で計画されました。 様

    レガシーな独自フレームワークから脱却してRailsへ徐々に移行している話 - メドピア開発者ブログ
  • 複数のテーブルに対して多対一で紐づくテーブルの設計アプローチ|スパイスファクトリー株式会社

    今回は、あまり見かけないようで意外と必要になる「複数のテーブルに対して多対一で紐づくテーブル」の設計について、4つのアプローチをご紹介します。 どのようなケース?あるテーブルが複数のテーブルのいずれかに対して、自身が多、紐付き先が一で関連する場合のテーブル設計です。 例えば、「記事」と「画像」を投稿できるようなSNSを想定します。 この時、閲覧者が投稿された「記事」と「画像」のどちらにも「コメント」をつけることができる機能があったとします。 このような場合に、どのようなテーブルの設計方法があるのか、以下から説明していきます。 1.ポリモーフィック関連SQLアンチパターンにも登場するこの設計方法。「どのテーブルのどのレコード(id)に紐づくのか」という情報をテーブルに持たせてしまうという方法です。具体的には以下のような設計になります。 comments.target_tableに関連する対象

    複数のテーブルに対して多対一で紐づくテーブルの設計アプローチ|スパイスファクトリー株式会社
  • 絶対に笑ってはいけないRailsコード集 - Qiita

    株式会社LITALICO のklrutsaです。 『LITALICO Advent Calendar 2016』13日目の記事です。 はじめに 私が遭遇した、Railsアンチパターン集です。 笑えるよりも、笑えないコードのほうが多いですが、よろしくお願いします。 前回の、負債を抱えすぎたRailsアプリのリファクタリング - Qiitaでは、複雑な状態遷移への対応方法を書きましたが、その他の負債をどうしたかみたいなことについて書いてみます。 一般的に書いてはいけない、とまではいえないかもしれないですが、 個人的には書かないほうが良いと思っているコード集です。 default_scope class Article < ActiveRecord::Base default_scope { where(status: 'publish') } end 要点 プログラマの認識している動作と実際の

    絶対に笑ってはいけないRailsコード集 - Qiita
    teracy_junk
    teracy_junk 2016/12/14
    『僕はrm -rfが一番笑えました。』あっ…(察し)
  • Ruby on Railsを学ぶときに常に意識しておけばよかった10のこと - Qiita

    プログラミングの土地勘がない状態で、RubyRailsを勉強しだすとまあ100%挫折しますね。なんでかっていうと、Webやインターネットの知識や、数学やプログラミングの原理など下地になる考え方やお作法があって、それに慣れていないと1つ1つの概念が頭に入ってこないから。 これは会計でも同じで、例えば税効果会計って、費用収益対応の原則や法人税に対する理解がないと1つ1つの処理がなぜそうなっているのか腹落ちしない。 なので、この投稿では、僕が仕事の合間を縫って悶絶しながらRubyを勉強して、あーでもないこーでもないと考えて、現時点でこの考え方を押さえておけばもっと学習時間を短縮できたなーということをまとめようと思う。正直まだ僕は初心者レベルなので、もしかしたら間違っていることもあるかもしれないので、その場合はその都度修正させてください。 1. オブジェクトとメソッドと変数の関係を正しく捉える

    Ruby on Railsを学ぶときに常に意識しておけばよかった10のこと - Qiita
  • Rails on WSL - Qiita

    Windows Subsystem for Linux(WSL)でRails開発できるのでは?と思って環境構築してみました。 今はVagrantで開発してるので、これが使えそうなら面倒くささが少し軽減するかなーと思ってます。 なお、この記事ではDBSQLiteのつもりということで、MySQLは入れてません。 WSLの環境準備など WSLのインストールはこのあたりを参考に。 http://qiita.com/Aruneko/items/c79810b0b015bebf30bb Gitはインストールしておきます。

    Rails on WSL - Qiita
  • Bash on WindowsでRails開発 - Qiita

    前書き 予め言っておきますが、僕の所属している会社は、サーバサイドエンジニアには最新のMacBookProを配布してますので、タイトルにあるような闇に突っ込む真似をさせたりはしていません。記事は個人的に趣味でやってみた記録です。 ついにきた Windows10 Anniversary Update Bash on WindowsはまだBetaだけど、Updateに含まれており、設定で有効にできる Docker for Windows/Mac VirtualBox上のCoreOSを用意しなくても、Windows/Mac上で直接Dockerが動く Railsぐらいは動くんじゃね?動いて欲しいw bashが動くなら、rbenvが動くはず apt-getで適切にライブラリ入れればrubyインストールできるはず DBとか、周辺ミドルウェアはDockerに任せとけ あとはnative extensi

    Bash on WindowsでRails開発 - Qiita
  • Visual Studio Codeを使ってRailsをデバッグ実行してみよう - Qiita

    Visual Studio Code(以下:VS Code)の正式版が2016年4月14日にリリースされました。 単なるエディタとして使用していたのですが、vscode-ruby拡張機能の登場でRubyのデバッグ実行が可能となったようなので、試しにデバッグ実行してみたいと思います。 実行環境 OS:OS X Ruby:2.2.3 Rails:4.2.6 Rubyがちょっと古いですが、あんまり気にしなくてもいいと思います。 環境構築 とりあえずRailsが動く環境にしないといけないのですが、Rubyのインストールは適当にググって調べればいくらでも出てくるのでそちらを参照下さい。 (macの人は「homebrew rbenv ruby」で検索すれば出てくるし、windowsの人も「ruby インストーラ」で検索すればいくらでも出てくるでしょう。windowsの人でbuild 14316適用し

    Visual Studio Codeを使ってRailsをデバッグ実行してみよう - Qiita
  • モデルだけネームスペースをつけずにscaffoldを生成する - Qiita

    管理画面などを自分で作る場合、admin/blogs_controller.rbのようなネームスペースのついたコントローラーと、blog のようなネームスペースなしのモデルにアクセスするscaffoldを作りたくなります ありがちな手順は、 rails generate scaffold blog のようにネームスペースなしでscaffoldを生成したあとで、controllerやviewのファイルを移動して、さらにそれらのファイルがネームスペースなしのモデルを参照するように直していく、というものです ですが、rails4に搭載されているscaffold_controller generatorを使うと、そんな面倒なことをしなくても最初から適切なscaffoldを生成させることができます scaffold_controller $ rails generate scaffold_contr

    モデルだけネームスペースをつけずにscaffoldを生成する - Qiita
  • ActiveRecordで子の数を揮発性キャッシュに保存する - Qiita

    ActiveRecordで1:Nの関係を扱うとき、ある親レコードに対して子レコードが幾つ存在するかという情報を、都度計算するのではなくキャッシュしておきたいケースは多いと思います。代表的な実装方法として、ActiveRecordのcounter cacheの機能を利用し、親レコード内にキャッシュを保存しておくという方法があります。 今回は、この情報を親レコード内ではなく揮発性のキャッシュに保存させるために、volatile_counter_cacheというGemをつくりました。memcachedやredisなどのKVSにキャッシュを保存することを想定しています。 方針 以下のような方針に基づいたキャッシュ戦略を想定しています。 RDB上には正規化された一次データだけ保存する 非正規化された二次データはRedis等のKVSに保存する 二次データは揮発しても良いようにする 概観 端的に言うと、

    ActiveRecordで子の数を揮発性キャッシュに保存する - Qiita
  • Redisデータ永続化の種類とサービス稼動時の切り替え注意点 - Qiita

    前提 以下は Redis 2.8 以降を前提としています Redisのデータ永続化の種類 Redisではデータの管理手法として3種類あります。 ・メモリでデータを管理する方式(揮発性ベース) ・特定のタイミングでデータをディスクに保存する方式(RDBベース) ・随時データをディスクに保存する方式(AOFベース) 'RDB'や'AOF'とすることでRedisを再起動してもはファイルからメモリにデータを読み込みなおすためデータの永続化がはかれる。というものです。 パフォーマンス劣化などの弊害もあるため、提供するサービスの内容とメリデメを見て選択することになります。 揮発性ベース データをすべてメモリ内で保有して処理します。 Redisの再起動でデータがすべてロストしてしまうので、これが許容できるケースで利用します。 説明

    Redisデータ永続化の種類とサービス稼動時の切り替え注意点 - Qiita
  • Redis 本番障害から学んだコードレビューの勘所

    Redis不適切利用による問題は番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩き起こされました。どうやらアクセス障害みたいです。 何人かで実機確認したら、まったくゲームが遊べない。データ不整合怖いのでメンテIN。 ほどなくしてRedisが溢れメモリ不足で新規書き込みが出来なくなっていると判明。サーバのメモリ容量は64GByteでこれ以

    Redis 本番障害から学んだコードレビューの勘所
  • 初心者がRails使っていて解決した備忘録 - Qiita

    として、selfで 元のクラスにあった、userをそのまま持って来れる(今回では、配列が入ったオブジェクトとしてuserを定義し、selfで持ってきた) この場合はselfは疑似変数と呼ばれる クラス内でのインスタンスメソッドの動きについては、こちらが分かりやすい http://blog.livedoor.jp/sasata299/archives/51302623.html selfがどのように、利用されているかが実行結果で分かる ※ちなみにjavaではthisというらしい http://ja.wikipedia.org/wiki/This_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29 特異メソッドについて(参考サイト) さらに、クラスメソッドとインスタンスメソッドについては、こちらでも htt

    初心者がRails使っていて解決した備忘録 - Qiita
  • List of Rails Model Types

    Does someone have a complete list of model types that be specified when generating a model scaffolding e.g. foo:string bar:text baz:boolean etc... And what do these types map to in terms of default UI elements? Text field, Text area, radio button, checkbox, etc...

    List of Rails Model Types
  • 3年間日本語のみで運用してきたサービスを、3ヶ月で新人が多言語化した話 | FiNC Developers Blog

    3年間日語のみで運用してきたサービスを、3ヶ月で新人が多言語化した話 はじめにはじめまして。FiNCで今年の4月からサーバーサイドエンジニアをやっている澤井です。 先日プレスリリースがありましたとおり、FiNCで提供している法人向けサービスFiNCプラスが日語以外にも対応し、この度英語版がリリースされました。 入社直後に携わった最初のプロジェクトということで、個人的には非常に感慨深いのですが、今回はこのプロジェクトの舞台裏を見ていきたいと思います。 多言語化とはサービスの多言語対応と言っても、そのスコープは様々ですし、サービスが提供しているデータは多岐にわたります。 ざっくりカテゴライズするだけでも、 UIタイムラインなどユーザー投稿によるデータおすすめのタスクなどのマスターデータがあり、それぞれテキストのものと画像データがあります。 またこれらに紐付いて、 ユーザー使用言語の判定があ

    3年間日本語のみで運用してきたサービスを、3ヶ月で新人が多言語化した話 | FiNC Developers Blog