【Ruby】キーワード引数の書き方
通常のメソッドの書き方に加えて、
① 定義側で、引数の後にコロンを付ける
② 呼び出し側で、値の前に引数名を書く
とすることで、キーワード引数を持つメソッドを書くことが可能。
■通常の書き方
def buy(item, price, count) puts "#{item}を#{count}台のお買い上げです" puts "合計金額は#{price * count}円です" end #呼び出し buy("テレビ", 15000, 2)
■キーワード引数版
def buy(item:, price:, count:) puts "#{item}を#{count}台のお買い上げです" puts "合計金額は#{price * count}円です" end #呼び出し buy(item:"テレビ",price: 15000,count: 2)
【Ruby】facebookでのログインに対応する方法
まずはfacebookのdevelopper用のサイトでアプリを登録しておきます。
developers.facebook.com
gemの導入
OmniAuth: Overview · plataformatec/devise Wiki · GitHub
上記サイトの手順に沿って行います。
gemfileに以下を追加
gem 'omniauth-facebook'
ターミナルでインストールコマンドを実行
bundle install
gemがinstallできました
次のステップ
ターミナルでコマンドを打っていけばOKです。
rails g migration AddOmniauthToUsers provider:string uid:string
migrationファイルが作成されました!
続いて以下のコマンド
rake db:migrate
migrate完了です!
続いてdevice.rbを編集
一番下に設定を追加しました。
続いてuser.rbを編集
最後尾に足しました。
config/routes.rbに以下を追加
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
続いて新規のフォルダをcontroller以下に作成しファイルを作ります。
こんな感じ
【Ruby on Rails5】toastrを導入し、かっこいいログインメッセージを表示する
【bootstrap】deviceを導入して認証機能をつける②:ログインしている場合にnavbarを変える【Ruby】
前回の記事
takanori5.hatenablog.com
今回はログインした後にnavbarの表示を変える方法をやっていきます。
https://github.com/plataformatec/devise
user_signed_inというのを利用すると良いと書いていますね。
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <% if (!user_signed_in?) %> <!-- ログインしていない時 --> <li><a href="#">●●になる</a></li> <li><a href="#">利用の流れ</a></li> <li><%= link_to "アカウント作成", new_user_registration_path %></li> <li><%= link_to "ログイン", new_user_session_path %></li> <% else %> <li><%= link_to "ログアウト", destroy_user_session_path,method: :delete %></li> <% end -%> </ul> </div>
このようにテンプレートに直接if文を書くだけでOK.
ログイン前
ログイン
ログイン後
commit
github.com
【Swift】facebookとtwitterにシェアする方法
facebookとtwitterにアプリからシェアする機能を実装する方法をまとめます。
まずはframeworkをimportします。
linked frameworks and librariesで+ボタンをクリック
social.frameworkをadd
contorollerにimportする
import Social //filedを定義 var composeController:SLComposeViewController!
SLComposeViewController は「Social Framework」のクラス。
SNSへの投稿を作成するための画面を提供します。
コードを 2 行書くだけで SNS へ投稿する機能を提供できます。
便利ですね。
では実際に定義したcomposeControllerを利用して投稿する機能を実装します。
ここでは投稿用のメソッドpostTwitterというのを定義しています。
//twitterに投稿 func postTwitter(){ //インスタンス化 composeController = SLComposeViewController(forServiceType: SLServiceTypeTwitter) //投稿したいテキストを指定 composeController.setInitialText(textView.text) //投稿する画像を指定 composeController.add(endImageView.image) // SLComposeViewController を表示する(投稿画面が立ち上がる) self.present(composeController, animated: true, completion: nil) }
上記の流れで実装完了です。
facebookに投稿したい場合は、インスタンス化する際のservieTypeをSLServiceTypeFacebookに変更すればOKです。
あとは画面のボタンタップ時などに読んで使いましょう。
」
【jQuery】 classの追加・削除をやってみる
htmlで共通して利用しているクラスを追加、削除することで適用されるスタイルを変更したい場合に利用すると便利な方法。
addClass()
$("要素名").addClass("class名")
removeClass()
$("要素名").removeClass("class名")
【bootstrap】formsを使ってみる【Ruby】
前回の記事
takanori5.hatenablog.com
前回作成した登録ページをbootstrapのformsを使って綺麗にしてみます。
<div class="field"> <%= f.label :email %><br /> <%= f.email_field :email, autofocus: true %> </div>
以下のように修正
classをform-groupに、さらにfieldにクラスを追加。(class => 'form-control'を追加)
<div class="form-group"> <%= f.label :email %><br /> <%= f.email_field :email,:class =>'form-control', autofocus: true %> </div>
e-mailフィールドが変化しました。