Open Graph Protocol

metaタグ"og:..."って付いてるのなんじゃろかとか普通に思ってました底辺です。

\エスイーオーエスイーオー/
http://millkeyweb.com/facebook-ogp/

なんかよくわかってないけど、Facebookでどうogpが解釈されて出るかっていうのは、ここ使えば出るみたい
ってOGPのサイトに書いてあった。笑

Facebook : Open Graph Object Debugger

せっかくメディアやるんだしいろいろ調べよ~う!
ああ、一時期セマンティックウェブ最高とか言ってたのにな。全然ついていけてないや。

Twitterの方の仕様
https://dev.twitter.com/cards/getting-started#opengraph

Rubyはcase whenはインデントしないスタイルが多いの。知らなかったよ。

Rubyはcase whenはインデントしないスタイルが多いの。知らなかったよ。
RubyMineのCodeStyleで設定変更するところがありました。

 

“Rubyはcase whenはインデントしないスタイルが多いの。知らなかったよ。”の続きを読む

Ruby on Rails version 4.2.1でRailsTutorialやって詰まったり疑問だったり

なんのメモにもならずながらも私の履歴なので残しておく。

RubyMineでrails new app_name は Create New Projectな感じで最初にプロジェクト作るとできる。

RubyMineでrails scaffold generate は プロジェクトの右クリックでNewから Run Rails Generatorで。
出てきたところに、Micropost content:string user_id:integerとか入れる。

RubyMineでBundle execやるとき。
How do I use bundle exec rake on RubyMine?
で結局どう動かすのかまだわからない。
Runだと、普通にサーバー動いちゃわないか?

ところで、Ruby on Railsのバージョン4.0からPATCHメソッドが採用されたんですね。
へー。

  • PUTメソッドはリソース(DBの行)のまるごと置き換え。
  • PATCHはリソース(DBの行)の指定したフィールドだけの置き換え。

ということで。

4.1ではconfig/initializers/secret_token.rbはconfig/secrets.ymlにおきかわるみたい。

herokuにpushするときってsecretどうするのかな。

まあいいや。

RubyMineでRails generateを動かすと出来上がったファイルがポーンてタブで開いてくれるってだけでもこれ便利かも。
まあどこにあるのか覚えなさそうだけど。

そしてRSpecつまづいた。
RSpecとCapybaraでつまづいたので
解決した。
でもなんかバージョンが違うんだけどいいのかな?

そして動的にする時、なんか変だぞ。
全く動かなくなったとおもったら require ‘spec_helper’を消しちゃってたというオチ。

3.6高度なセットアップは飛ばすことにしました。

後何日かかるかな。

5章は
5.1.2BootstrapとカスタムCSSのところで、tutorialはbootstrap2なの嫌だからBootstrap 3に。以下のやつ試したらうまくいった。
Integrating Twitter Bootstrap 3.3 with Rails 4.2

bootstrap2ベースでやってるCSSも気に入らないので、やらなかった。
ここのタイミングで一回コミットしてpushしといた。
https://github.com/maimai-swap/sample_app/commit/c231bffb8520c7fa2a2108dc0f69a6e06bc986d9
やっぱりブランチ毎にリモート足してpushするのよくわからなかったので、ここでSourceTreeさん大活躍でした。
(add origin すればいいんだろうけど)

努力して解決したおもいきや、、、、。
5.2 SassとAsset Pipeline
が出てきてがっくりしてる。

進めてるんだけど、Rspec2系じゃなくてRspec3系でやろうと勝手にやってたら、テスト通らなくなってきた。
みんな”config.include Rails.application.routes.url_helpers” をspec_helperについかしたらなおったつってるんだけどなおりゃしないね。

とおもいきや、最初にrspecのrails generate rspec:installしたときはrspec2だったので、一回specフォルダ消して
rspec3系の状態で、rails generate rspec:installしてから、
rails_helper.rb にこれら入れたら動いた。

config.include Capybara::DSL
config.include Rails.application.routes.url_helpers

なんか関係ないけど、マシン再起動したら、gemsetっつうの?設定されてない状態になったんだけどこれはこういうものカニ。
なのでもう一回gemset指定してdefaultにするなど。
rvm use 2.1.4@railstutorial_rails_4_2 –default

つづいて、5.3.4でRspecを洗練させるでなんかRspec用のユーティリティつくったら全然認識されなかったのだが、spec_helper.rbでutilities.rbをrequireしたら動いた。
https://gist.github.com/maimai-swap/ea93bff05805eeb8c3b2#file-spec_helper-rb-L1

6章でbcrypt-rubyいれようとしたら↓っていわれた
The bcrypt-ruby gem has changed its name to just bcrypt. Instead of
installing `bcrypt-ruby`, you should install `bcrypt`. Please update your
dependencies accordingly.

RubyMineでrails new app_name は Create New Projectな感じで最初にプロジェクト作るとできる。

RubyMineでrails scaffold generate は プロジェクトの右クリックでNewから Run Rails Generatorで。
出てきたところに、Micropost content:string user_id:integerとか入れる。

RubyMineでBundle execやるとき。
How do I use bundle exec rake on RubyMine?
で結局どう動かすのかまだわからない。
Runだと、普通にサーバー動いちゃわないか?

ところで、Ruby on Railsのバージョン4.0からPATCHメソッドが採用されたんですね。
へー。

  • PUTメソッドはリソース(DBの行)のまるごと置き換え。
  • PATCHはリソース(DBの行)の指定したフィールドだけの置き換え。

ということで。

4.1ではconfig/initializers/secret_token.rbはconfig/secrets.ymlにおきかわるみたい。

herokuにpushするときってsecretどうするのかな。

まあいいや。

RubyMineでRails generateを動かすと出来上がったファイルがポーンてタブで開いてくれるってだけでもこれ便利かも。
まあどこにあるのか覚えなさそうだけど。

そしてRSpecつまづいた。
RSpecとCapybaraでつまづいたので
解決した。
でもなんかバージョンが違うんだけどいいのかな?

そして動的にする時、なんか変だぞ。
全く動かなくなったとおもったら require ‘spec_helper’を消しちゃってたというオチ。

3.6高度なセットアップは飛ばすことにしました。

後何日かかるかな。

5章は
5.1.2BootstrapとカスタムCSSのところで、tutorialはbootstrap2なの嫌だからBootstrap 3に。以下のやつ試したらうまくいった。
Integrating Twitter Bootstrap 3.3 with Rails 4.2

bootstrap2ベースでやってるCSSも気に入らないので、やらなかった。
ここのタイミングで一回コミットしてpushしといた。
https://github.com/maimai-swap/sample_app/commit/c231bffb8520c7fa2a2108dc0f69a6e06bc986d9
やっぱりブランチ毎にリモート足してpushするのよくわからなかったので、ここでSourceTreeさん大活躍でした。
(add origin すればいいんだろうけど)

努力して解決したおもいきや、、、、。
5.2 SassとAsset Pipeline
が出てきてがっくりしてる。

進めてるんだけど、Rspec2系じゃなくてRspec3系でやろうと勝手にやってたら、テスト通らなくなってきた。
みんな”config.include Rails.application.routes.url_helpers” をspec_helperについかしたらなおったつってるんだけどなおりゃしないね。

とおもいきや、最初にrspecのrails generate rspec:installしたときはrspec2だったので、一回specフォルダ消して
rspec3系の状態で、rails generate rspec:installしてから、
rails_helper.rb にこれら入れたら動いた。

config.include Capybara::DSL
config.include Rails.application.routes.url_helpers

なんか関係ないけど、マシン再起動したら、gemsetっつうの?設定されてない状態になったんだけどこれはこういうものカニ。
なのでもう一回gemset指定してdefaultにするなど。
rvm use 2.1.4@railstutorial_rails_4_2 –default

つづいて、5.3.4でRspecを洗練させるでなんかRspec用のユーティリティつくったら全然認識されなかったのだが、spec_helper.rbでutilities.rbをrequireしたら動いた。
https://gist.github.com/maimai-swap/ea93bff05805eeb8c3b2#file-spec_helper-rb-L1

6章でbcrypt-rubyいれようとしたら↓っていわれた
The bcrypt-ruby gem has changed its name to just bcrypt. Instead of
installing `bcrypt-ruby`, you should install `bcrypt`. Please update your
dependencies accordingly.

http://stackoverflow.com/questions/24210969/rails-tutorial-authenticate-issue
specify { expect(user_for_invalid_password).to be_falsey }
かなって思ったんだけどまあいいかってこれのとおりにした。

破壊的代入!

7.3.2 Strong Parametersでマスアサインメントの。なるほど読んでおくべき。
Rails4 | 新規・変更機能 | マスアサインメント機能と脆弱性とStrong Parameters

へー。
GitHub、Mass Assignment利用の脆弱性を突かれる

あー。
gihyo.jp » DEVELOPER STAGE » 海外テック情報局 » GitHubのセキュリティホールを攻略したユーザ

なんかmodels/user_spec.rbがいっぱい失敗するなと思ったら、テストデータベースにデータが入ったままになってたから見たい。
ちなみにRspecでテスト実行すると、データベースってtest.dbが使われてるわけではない?終わった後データ空っぽになってるのは、そういうふうに動いてくれてるのかな?

要素代入関数ってなんのためにあんの。rubyはインスタンス変数の宣言できないからこんなふうに宣言しとくの?

テストのsignアウトが失敗するのなんでかなとおもってたら、こんなかんじで
describe “followed by signout” do
がネストしてないとダメみたい。
Hartl’s Ruby on Rails Tutorial test failing (chapter 9)

Cucumberの紹介で、振舞駆動開発ってなんだよっておもったら、ビヘイビア駆動開発 (振舞駆動開発; behavior driven development; BDD)とのことです。
Cucumberは飛ばした。

9.2.2.
エラーでたので、root_urlじゃなくて、root_pathにした。How do I resolve “Missing host to link to! Please provide the :host parameter”? (RoR)

1) Authentication authorization as wrong user submitting a PATCH request to the Users#update action
Failure/Error: specify { expect(response).to redirect_to(root_url) }
ArgumentError:
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

rails console --sandbox
ってなんだっけ。
とおもったら、quitのときrollbackしてくれたなるほど。
2.1.4 :003 > quit
(1.4ms) rollback transaction

9.51
Rspecでサインアウトする時visitじゃなくてdeleteなのなんか不思議だけども、ちゃんとroutes.rbにかいてあるんですよね。
delete signout_path
なんかへんだけどっておもってて、RSpec通らなくなったなと思っててたら、

Capybara.current_session.driver.delete signout_path
っていってる。これで通った。なんか、root_pathに遷移されるんだけど何でかなーって思ってたんだけど。
これなんの意味かわかんない。

演習9.6.9分かんないから飛ばす。

リスト10.5 マイクロポストのユーザーとの関連付けのテスト。
spec/models/micropost_spec.rb
まだよくわかってないんだけどなんで動かんの。
its(:user) { should be eq user }

specify { expect(@micropost.user).equal? user }
に変えたら動いた。

10.18で
app/views/microposts/_micropost.html.erb
をまちがえて
app/views/users/_micropost.html.erb
とおいて、しまってなんか変とかやってたけど、置いてるディレクトリ間違えてるだけだった。

10.3で全然パーシャルのshared/error_messagesがつかえない、
form_forでとったfのf.objectなんかネーよというエラーが出る。まあ確かにform_formのまわりみててもobjectがどうのって記述ない。
なので飛ばすというか別々にshared/user_error_messagesとshared/micropost_error_messagesつくった。ダサい。

リスト10.38 homeアクションにフィードのインスタンス変数を追加する。
app/controllers/static_pages_controller.rb
のところだけど、
@feed_items = current_user.feed.paginate(page: params[:page])

じゃなくてこうじゃないかな。テストでcurrent_userがnilってエラーが出た。
if current_user
@feed_items = current_user.feed.paginate(page: params[:page])
end

力尽きました。