「Tabetai」を編集中

移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
4行目: 4行目:
  
 
[[rails前バージョン確認|バージョン確認]]
 
[[rails前バージョン確認|バージョン確認]]
 
[https://help.onamae.com/contact/ お名前.com問い合わせ]
 
  
 
== create application ==
 
== create application ==
19行目: 17行目:
  
 
  % bin/setup
 
  % bin/setup
 
サーバー側
 
$ bundle install  --without test development
 
 
database.yml username:などを確認する (2箇所)
 
<nowiki># /config/database.yml
 
 
production:
 
  <<: *default
 
  database: tabetai_production
 
  username: jq
 
  password: <%= ENV["TABETAI_DATABASE_PASSWORD"] %></nowiki>
 
 
<nowiki># /config/environments/production.rb
 
 
  config.assets.compile = true
 
 
  config.action_mailer.raise_delivery_errors = true                                     
 
  config.action_mailer.delivery_method = :smtp
 
  #host = 'localhost'                                                                   
 
  host = 'http://onk.pokpok.jp'
 
  config.action_mailer.default_url_options = { host: host }</nowiki>
 
 
データベース作成
 
$ createdb tabetai_production
 
 
$ rails db:migrate RAILS_ENV=production
 
 
== production ==
 
% $ DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rails db:drop RAILS_ENV=production
 
 
<nowiki>本番環境でbin/devを実行する。
 
 
RAILS_ENV環境変数を設定して本番環境を指定。
 
 
export RAILS_ENV=production
 
 
bundleコマンドを使用してGemの依存関係をインストール。
 
 
bundle install
 
 
プリコンパイルされたアセットを生成。
 
 
bundle exec rails assets:precompile
 
 
サーバーを起動。
 
 
bundle exec rails server</nowiki>
 
  
 
== テスト用のデータで開発用のデータをつくる設定 ==
 
== テスト用のデータで開発用のデータをつくる設定 ==
73行目: 23行目:
 
puts "\n== Seeding the database with fixtures =="
 
puts "\n== Seeding the database with fixtures =="
 
system("bin/rails db:fixtures:load")</nowiki>
 
system("bin/rails db:fixtures:load")</nowiki>
 
== db:rollback ==
 
% rails db:migrate:status
 
 
% rails db:rollback
 
 
% rails db:rollback STEP=n
 
 
% rails db:migrate:down VERSION=**************
 
 
== gemのアンインストール方法 ==
 
<nowiki>$ bundle exec gem uninstall <gem名>
 
 
Gemfileから該当のgemの行を削除
 
 
$ bundle install</nowiki>
 
  
 
== user ==
 
== user ==
% bundle exec rails g model User email:string
 
 
t.string :email, null: false, index: { unique: true }
 
 
% bundle exec rails db:migrate
 
 
<nowiki># app/models/user.rb
 
 
  validates :email, presence: true, uniqueness: true</nowiki>
 
 
== home ==
 
ホームを作る
 
% rails generate controller Pages home
 
 
homeコントローラーはパブリックなので、認証をはずす
 
<nowiki># app/controllers/pages_controller.rb
 
 
skip_before_action :authenticate_user!
 
</nowiki>
 
 
ルートパス
 
<nowiki># config/routes.rb
 
 
root to: "pages#home"</nowiki>
 
 
 
== user devise ==
 
 
  % bin/rails generate devise:install
 
  % bin/rails generate devise:install
  
148行目: 55行目:
  
 
   * 必須ではありません。 *</nowiki>
 
   * 必須ではありません。 *</nowiki>
 
1
 
  
 
  # config/environments/development.rb
 
  # config/environments/development.rb
 
  <nowiki>  host = 'http://koresore.pokpok.jp'
 
  <nowiki>  host = 'http://koresore.pokpok.jp'
 
   config.action_mailer.default_url_options = { host: host }</nowiki>
 
   config.action_mailer.default_url_options = { host: host }</nowiki>
 
2
 
 
# app/views/layouts/application.html.erb
 
<nowiki><p class="notice"><%= notice %></p>
 
<p class="alert"><%= alert %></p></nowiki>
 
 
Modelを作成
 
$ bin/rails generate devise User
 
$ bin/rails db:migrate
 
 
Viewを作成
 
$ rails generate devise:views users
 
 
view更新
 
<nowiki># config/initializers/devise.rb
 
 
config.scoped_views = true</nowiki>
 
 
 
ログインしないとアクセスできないようにする
 
<nowiki># app/controllers/application_controller.rb
 
 
class ApplicationController < ActionController::Base
 
  before_action :authenticate_user!, unless: :devise_controller?
 
end</nowiki>
 
 
== DeviseとOmniauthでGoogle、Twitter、Facebook認証 ==
 
 
gem 'dotenv-rails'
 
$ bundle install
 
$ touch .env
 
 
<nowiki>HOST='example.jp'
 
TWITTER_API_KEY=
 
TWITTER_API_SECRET=
 
GOOGLE_CLIENT_ID=
 
GOOGLE_CLIENT_SECRET=
 
FACEBOOK_KEY=
 
FACEBOOK_SECRET=</nowiki>
 
 
<nowiki>gem 'omniauth-facebook'
 
gem 'omniauth-twitter'
 
gem 'omniauth-google-oauth2'</nowiki>
 
 
[[oauth|bundle install後のメッセージ]]
 
 
$ rails g migration AddOmniauthToUsers provider:string uid:string
 
 
<nowiki># config/initializers/devise.rb
 
 
config.omniauth :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], scope: 'email', info_fields: 'email', callback_url: "#{ENV['HOST']}/users/auth/facebook/callback"
 
 
config.omniauth :twitter, ENV['TWITTER_API_KEY'], ENV['TWITTER_API_SECRET'], scope: 'email', oauth_callback: "#{ENV['HOST']}/users/auth/twitter/callback"
 
 
config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], scope: 'email', redirect_uri: "#{ENV['HOST']}/users/auth/google_oauth2/callback"
 
 
OmniAuth.config.logger = Rails.logger if Rails.env.development?</nowiki>
 
 
<nowiki>$ mkdir app/controllers/users/
 
$ touch app/controllers/users/omniauth_callbacks_controller.rb</nowiki>
 
 
== test ==
 
~/tabetai2$ bin/rails generate simple_form:install
 

wikipokpokへの投稿はすべて、クリエイティブ・コモンズ 表示-継承 (詳細はWikipokpok:著作権を参照)のもとで公開したと見なされることにご注意ください。 自分が書いたものが他の人に容赦なく編集され、自由に配布されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し | 編集の仕方 (新しいウィンドウで開きます)