Yuto Blog
Yuto Blog

Chia sẻ về kỹ thuật lập trình và cuộc sống Nhật Bản

Ruby on Rails で vote (like, dislike, unvote) 出来るアプリケーションを作る (acts_as_votable)

>>> デモサイトはこちらです <<< (https://yuto-vote-system.herokuapp.com) >>> 参考:Bootstrapの開発環境を自動的に作る <<< (http://qiita.com/YutoYasunaga/items/f53e62d850570eb85e4f) このアプリケーションでは、ユーザーはLike、Dislike、またはUnvote出来る機能を追加したいと思います。 Screen Shot 2015-05-31 at 23.48.46.png https://qiita-image-store.s3.amazonaws.com/0/35605/4ae10c18-36d9-52a2-7088-117b5518dee8.png ruby:Gemfile gem 'acts_as_votable' gem 'devise' ユーザー登録を作成 Deviseをインストール: rails g devise:install ユーザーモデルを作る: rails g devise...
Updated by Yuto at 2023-05-09 21:05

【Ruby on Rails】filter_parameters.rbにログで見られたくないパラメーターを追加する

ruby:config/initializers/filter_parameters.rb Rails.application.config.filter_parameters += [:password, :credit_card_number]
Updated by Yuto at 2023-05-09 21:05

【Gem】kaminari で一つのページで複数のペイジング

Controller ruby @topics = Topic.page(params[:topics_page]).per(5) @activities = Activity.page(params[:activities_page]).per(10) View ruby = paginate @topics, param_name: 'topics_page' = paginate @activities, param_name: 'activities_page'
Updated by Yuto at 2023-05-09 21:05

【 Ruby on Rails 】自分のFlash message をカスタムする

ruby:app/controllers/application_controller.rb class ApplicationController add_flash_types :good, :bad end ruby:app/controllers/users_controller.rb class UsersController < ApplicationController def create redirect_to root_path, good: "Created user!" end end ruby:app/views/users/index.html.erb <%= good %>
Updated by Yuto at 2023-05-09 21:05

【Ruby on Rails】Foundation5 flash message with slim

ruby:app/views/layouts/_message.html.slim - flash.each do |name, msg| - if msg.is_a?(String) div data-alert='' class="alert-box round #{name.to_s == 'notice' ? 'success' : 'alert'}" = content_tag :div, msg a href='#' class='close' &times;
Updated by Yuto at 2023-05-09 21:05

【 Ruby on Rails】複数のOmniauth

>>> アプリケーションはこちらです <<< (http://renshu-multiple-omniauth.herokuapp.com/) 参考:Bootstrapの開発環境を自動的に作る (http://qiita.com/YutoYasunaga/items/f53e62d850570eb85e4f) Screen Shot 2015-05-27 at 20.28.11.png https://qiita-image-store.s3.amazonaws.com/0/35605/d4659969-7c74-3230-b216-478692ddab53.png ruby:Gemfile gem 'omniauth-facebook' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-tumblr' gem 'omniauth-amazon' ```ruby:config/devvariables.rb ENV['FACEBOOKKEY'] =...
Updated by Yuto at 2023-05-09 21:05

【Middleman】 Slim+Sass+Coffeescript+Bootstrap+Heroku

Middlemanを利用して、簡単に性的なサイトが作れます。 SlimとSassとCoffeescriptを使うと、コードが短くなって、コーディングすることが楽になります。Bootstrapなども利用できます。 Middlemanをインストール gem install middleman 新しいMiddlemanサイトを作る middleman init sample-app サイトを動かす middleman s livereload を使う ruby:Gemfile gem 'middleman-livereload' ```ruby:config.rb Reload the browser automatically whenever files change configure :development do activate :livereload end ``` Slimを使う ruby:Gemfile gem 'slim' ファイル名を変更 layout.erb => layout.html.slim index.html.erb =>...
Updated by Yuto at 2023-05-09 21:05

[Ruby on Rails] Devise + Omniauth Authentication

Sample Application (https://yuto-devise-omniauth.herokuapp.com/) ruby:Gemfile gem 'devise' gem 'omniauth' gem 'omniauth-facebook' gem 'omniauth-twitter' gem 'paperclip' gem 'fog' rails g devise:install rails g devise User rails g devise:controllers users rails g migration AddAttributesToUsers name uid provider token rails g paperclip user image ruby:config/routes.rb devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks', registrations:...
Updated by Yuto at 2023-05-09 21:05

[Ruby on Rails] SubModel in Model

Category Sub Category Sub Category Sub Category ```ruby:migrate.rb class CreateCategories < ActiveRecord::Migration[5.0] def change create_table :categories do |t| t.string :name t.references :parent t.timestamps end end end ``` ruby:model.rb class Category < ApplicationRecord has_many :categories, class_name: 'Category', foreign_key: 'parent_id', dependent: :destroy belongs_to :parent, class_name: 'Category', optional: true end c.parent c.categories
Updated by Yuto at 2023-05-09 21:05

Ruby on Rails でFCMを使う時のメモ

click_actionを反映させる firebase-messaging-sw.jsのトップにnotificationclickイベントを追加すればいいらしいです。 ```javascript:public/firebase-messaging-sw.js // Notification click self.addEventListener('notificationclick', function(event) { let url = event.notification.data.FCM_MSG.data.url; event.notification.close(); // Android needs explicit close. event.waitUntil( clients.matchAll({ includeUncontrolled: true, type: 'window' }).then( windowClients => { // Check if there is already a window/tab open...
Updated by Yuto at 2023-05-09 21:05
Cách học để đậu chứng chỉ Ruby Gold trong một tháng

Cách học để đậu chứng chỉ Ruby Gold trong một tháng

Ở phần trước mình có viết bài giới thiệu về cách học để đậu chứng chỉ Ruby Silver trong một tháng, phần tiếp theo này sẽ là Ruby Gold.Chứng chỉ Ruby Gold là gì? Ruby Association Certified Ruby Programmer Gold version 2.1 hay còn gọi tắt là Ruby Gold hoặc Ruby Vàng, là một chứng chỉ được cấp bởi tổ chức phi lợi nhuận Ruby Association, được điều hành bởi người sáng tạo ra ngôn ngữ Ruby - Yukihiro Matsumoto. Điều kiện để được công nhận đậu Ruby Gold là bạn đã đậu Ruby Silver và trong kỳ thi...
Updated by Yuto at 2023-05-09 21:05
Cách học để đậu chứng chỉ Ruby Silver trong một tháng

Cách học để đậu chứng chỉ Ruby Silver trong một tháng

Phần tiếp theo: Cách học để đậu chứng chỉ Ruby Gold trong một tháng Chứng chỉ Ruby Silver là gì? Ruby Association Certified Ruby Programmer Silver version 2.1 hay còn gọi tắt là Ruby Silver hoặc Ruby Bạc, là một chứng chỉ được cấp bởi tổ chức phi lợi nhuận Ruby Association, được điều hành bởi người sáng tạo ra ngôn ngữ Ruby - Yukihiro Matsumoto.Mục đích lấy chứng chỉ Ruby SilverĐối với bản thân mình, người bắt đầu tiếp xúc với ngôn ngữ lập trình Ruby từ năm 2013 thì chứng chỉ này có ý...
Updated by Yuto at 2023-05-09 21:05
Rails 7 + Devise + omniauth-facebook + omniauth-twitterでログイン機能作成(基本から詳細まで)

Rails 7 + Devise + omniauth-facebook + omniauth-twitterでログイン機能作成(基本から詳細まで)

この記事は devise、omniauth-facebook、omniauth-twitterのGemを使って、メールとFacebookとTwitterでログイン機能を作ります。 まずはFacebookとTwitter側の設定から始めます。 Facebook側の設定 アプリを作成URL:https://developers.facebook.com/apps/create (https://developers.facebook.com/apps/create) スクリーンショット 0003-11-07 10.58.46.png https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35605/a6ba4d02-6d33-f626-6d24-eac36edbc97e.png スクリーンショット 0003-11-07 10.59.42.png...
Updated by Yuto at 2023-05-09 21:05

Ruby on Rails 6にTailwindCSSを導入(Gemを使わず)

Yarnで必要なものをインストールする yarn add tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9 tailwind.config.jsファイルを生成する yarn tailwindcss init app/javascript/packs/tailwind.config.js javascript:app/javascript/packs/tailwind.config.js module.exports = { purge: [ './app/**/*.html.erb', './app/**/*.html.slim', './app/helpers/**/*.rb', './app/javascript/packs/**/*.js', ], //...
Updated by Yuto at 2023-05-09 21:05
EC2 Ubuntu インスタンスに CloudWatch Logsエージェントをインストールして設定する

EC2 Ubuntu インスタンスに CloudWatch Logsエージェントをインストールして設定する

CloudWatch Logs エージェントをインストールすると CloudWatch Logs の画面でEC2インスタンスで実行されているアプリケーションのログがリアルタイムに閲覧できます。 IAMロール設定 まずは適切なロールが必要です。 下記のポリシーで新規ロールを作って、そのロールをEC2インスタンスに割り当てます。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ] } ロールが作成できたらEC2インスタンス一覧画面で、インスタンスを右クリックして、セキュリティーの中に...
Updated by Yuto at 2023-05-09 21:05
DockerでMailcatcherを使ってRuby on Rails開発環境のメールを受信する

DockerでMailcatcherを使ってRuby on Rails開発環境のメールを受信する

Mailcatcherの概要は公式サイトで色々記載されています:https://mailcatcher.me letter_opener も Ruby on Rails 開発環境のメールがテストできるが、個人的には Mailcatcher の方が便利で使いやすいので、よく使います。 docker-compose設定 yaml:docker-compose.yml mailcatcher: image: schickling/mailcatcher container_name: mailcatcher ports: - '1080:1080' - '1025:1025' Dockerを起動したら「localhost:1080」で管理画面にアクセスできます。 スクリーンショット 0003-10-30 22.10.33.png...
Updated by Yuto at 2023-05-09 21:05
Ruby on RailsアプリでAWS SESを使ってメールを送信する方法(設定から実装まで)

Ruby on RailsアプリでAWS SESを使ってメールを送信する方法(設定から実装まで)

前はずっとSendGrid経由でメール送信機能を使っていましたが、せっかくAWSでアプリケーションをデプロイするのでAWSのサービスを使いたかったです。その為メール送信機能をSendGridからAWS SESに移動しました。 では、簡単に言うと Amazon Simple Email Service (SES) は、デベロッパーが任意のアプリケーションでメールを送信できるようにする、費用対効果の高い、柔軟でスケーラブルなメールサービスです。 SES設定 sandboxから移動 新規AWSアカウントではSESの制御があるます、確認済みのアドレスしか送信できなくて、1日最大200メールや1秒にあたり1メールなどの制限があります。 なので本番で使用できるにはリクエストをしなければなりません。 リクエスト方法はまずこのリンクにアクセス:http://aws.amazon.com/ses/fullaccessrequest 自分の場合は画像のように入力したら半日後で承認されました。 スクリーンショット 0003-10-30 11.54.00.png...
Updated by Yuto at 2023-05-09 21:05
Một vài thuật ngữ cơ bản về nhiếp ảnh

Một vài thuật ngữ cơ bản về nhiếp ảnh

Khẩu độ- Khẩu độ càng to thì số càng bé- Khẩu độ là một trong những yếu tố quan trọng nhất để kiểm soát ánh sáng- Mở khẩu -&gt; sáng- Khép khẩu -&gt; tối- Độ sâu trường ảnh- Khẩu độ càng to ảnh càng xóa phông Tốc độ màn trập- Tốc độ màn trập là thời gian màn trập mở ra để ánh sáng đi vào cảm biến- Kiểm soát ánh sáng- Tốc độ màn trập càng nhanh thì càng ít ánh sáng đi vào cảm biến- Tăng tốc độ -&gt; ảnh tối hơn- Giảm tốc độ -&gt; ảnh sáng hơn- Hiệu ứng hình ảnh- Tăng tốc độ -&gt; đóng băng...
Updated by Yuto at 2023-05-09 21:05

Rubyで #frozen_string_literal: true というマジックコメントを付ける意味

Rubyで開発する時、rubocopを使ったらよく Missing frozen string literal comment と警告され、ファイルの一番上に「#frozenstringliteral: true」を入れることが推進されます。 簡単に説明すると、Ruby 2.3以降では、#frozenstringliteral: trueというマジックコメントを記述した場合、文字列リテラルで生成される文字列は値が変更できないようにfreezeされ、同じ内容の文字列リテラルは同一の文字列オプジェクトを返すようになります。 #frozenstringliteral: true がない場合 ```ruby text1 = 'Hello world' text2 = 'Hello world' puts text1.objectid == text2.objectid ``` 文字列の内容が同じでもオブジェクトが別の為、falseを返します。 #frozenstringliteral: true がある場合 ```ruby #frozenstringliteral:...
Updated by Yuto at 2023-05-09 21:05
Phở gà và mì rau mùi “Made in Japan"

Phở gà và mì rau mùi “Made in Japan"

Bạn đã từng nghĩ là sẽ thưởng thức phở truyền thống Việt Nam và mì rau mùi ngay trên đất Nhật chưa? Mình chắc chắn hương vị ẩm thực của quê hương sẽ ùa về trong bạn. Mình muốn giới thiệu với các bạn hệ thống cửa hàng tên là KALDI Coffee Farm, đây là nơi bán thực phẩm nước ngoài, từ châu Âu, châu Á, và đương nhiên có cả của Việt Nam nữa. Bạn có thể tham khảo qua trang web của cửa hàng: http://www.kaldi.co.jp/ Nơi đây có bán những món hàng Việt Nam như các loại bún, phở, mì gói, tương ớt, và...
Updated by Yuto at 2023-05-09 21:05