1日1%成長するブログ

毎日成長するために仕事/プライベートで得た学びをアウトプットするブログです

Rails

Railsでページ毎にJSとCSSファイルを読み込む

- content_for :css do = stylesheet_link_tag 'posts/show' - content_for :js do = javascript_include_tag 'posts/show' Rails.application.config.assets.precompile += %w( posts/* ) ページ毎にcontent_forでレイアウトファイルに読み込ませる assets.…

RailsにおけるCSS構成のプラクティス

body class="#{controller.controller_name}-#{controller.action_name}" コントローラー名とアクション名 .articles { &-show { .inputContainer { margin: 20px } } &-edit { .inputContainer { margin: 10px; } } } @import "user/articles" ユーザー画面…

Rails5でローカルではsqlite3で動かしてHerokuではPostgresを使う手順

group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] # Adds support for Capybara system testing and selenium driver gem 'capybara…

Rubyの&とRailsの#tryの違い

Rubyの&. ruby2.3から追加された新しい演算子 Safe Navigation Operator(&.) 10&.to_s # => "10" nil&.to_s # nil レシーバがnilでない場合にメソッドを呼び出す レシーバがnilの場合はnilを返す Railsの#try ActiveSupportで提供されるメソッド 10.try(:to_…

HerokuにRails5のアプリをデプロイする

Herokuにログインする $ heroku login Postgresを使ったアプリを作成 $ rails new myapp --database=postgresql 動作確認用にコントローラーを作っておく $ rails generate controller welcome <h2>Hello World</h2> <p> The time is now: <%= Time.now %> </p> app/views/we…

CarrierwaveでUUIDを使ったファイル名にする方法

UUIDとは Universally (普遍的に) Unique (一意な) IDentifier (識別子) の略 誰でも作れるが世界中で重複しないようになっているID RFC4122という共通の規格が決められている https://tools.ietf.org/html/rfc4122 UUIDの種類 UUIDの作成方法には5種類存在…

Rails5でajaxを使っていいね機能を実装する

ルーティングを用意する resources :diaries do resources :diary_comments, only: [:create] resources :diary_likes, only: [:create, :destroy] end diaryが重複するので後でスッキリさせる モデルを用意する class Diary < ApplicationRecord belongs_to…

Railsでコメント機能を作る

ルーティングの追加 resources :diaries do resources :comments, only: [:create] end コントローラー側 @diaryComment = DiaryComment.new(diary_comment_params) @diaryComment.user_id = User.first.id respond_to do |format| if @diaryComment.save fo…

Vagrant上のRails5のソースコードをホストOSから編集する

vagrantの共有フォルダにRailsプロジェクトを配置する vagrantにはホストOSとファイルを共有するための場所が用意されています。 デフォルトでは/vagrantがそれです。 ゲスト側でVagrantFileがあるフォルダの中身が表示されます サーバーを起動してみる rail…

ActiveRecordのEnum型のデータをJavaScriptから保存する

enum(列挙型)の使い方 ActiveRecordのenumを使うと、プログラムからは文字列(名前)でアクセスでき、 DBには数値で保存される属性を作ることができます。 Modelに属性にセットできる文字列を列挙する class Post < ActiveRecord::Base enum status: { draft: …