" いいね " なライフをつくる。

うそはつかない。"いいね"をつくる。じゆーうな日記です。

progate中級編 Ruby on Rails 暗記すべきもの一覧 Railsメモ①

 

progate中級編 Ruby on rails メモ

暗記したほうがいいもの

 

 

f:id:tusukurukun:20160711165221p:plain

-----------------------------------------------------------------------------------------------------

 

progateのRuby on Railsを学習していく中で、

どちらかというと理解して書いていくというよりは、

暗記しておく方がいいのでは!と思ったものをメモしました。

 

 

f:id:tusukurukun:20160711165152p:plain

 

初心者の目線からの暗記すべき重要項目なので、

まだRailsを始めたての方には参考になるかと思います。

 

中級編を一周した後に確認してみるとすごく良いと思います。

 

赤字のコードが暗記するのが良いと思うコードです。

 

-----------------------------------------------------------------------------------------------------

 

 

・ストロングパラメータ。

  paramas.require(:note).permit(:title, :content)



#指定したパラメーターにのみ入力できる。

[controller]

privte #このクラス内でのみ有効

   set_params

     paramas.require(:note).permit(:title, :content)

   end

 

-----------------------------------------------------------------------------------------------------

 

 

・エラーメッセージを表示しよう。

  @note.erros.any?

 

#オブジェクトが一つでもあればtrueを返す。なければfalseを返す。

 

[view]

 <% if  @note.erros.any? %>

 <% end %>

 

-----------------------------------------------------------------------------------------------------

 

 

・エラーメッセージを表示しよう。

  @note.errors.full_messages.

 

#validatesでエラーが発生した場合に、エラーメッセージを配列で取得してviewに出力する。

 

[view]

 <%  @note.errors.full_messages.each do |message| %>

   <%= messages %>

 <% end %>

 

-----------------------------------------------------------------------------------------------------

 

 

・パーシャルを作ろう。

  form_for(@note)

 

#form_forタグの引数(@note)は、データベースに保存されているか否かで送信先が変わる。

 

[view]

<%= form_for(@note) do |f| %>

#@noteが保存されていれば、updateアクションへ。そうでなければcreateアクションへ。

 

-----------------------------------------------------------------------------------------------------

cakephp3インストール方法! intlエラーの直し方

 

 

こんにちは!cakephp3を始めたい!と思って検索すると、「簡単に始められるよ。」という記事がたくさん出てきます。

 

それならやってみようと思いきや、全然うまくいかない。

intlがどうこうってエラーに三日近く悩みました。笑

解決したのでその直し方を書いていきます。

 

環境

mac os X 10.11

XAMPP 

 

 

cakephpをダウンロードできるサイト Tags · cakephp/cakephp · GitHub

ここでダウンロードできた方は localhost/cakephp/ で起動してみてください。

こんな感じの画面になれば成功なのですが・・・・・。

 

f:id:tusukurukun:20160531024359p:plain

 

 

 

 

この方と同じエラーにはまりました。

CakePHP3を使うで!! – 献本の備忘録

 

Fatal error: You must enable the intl extension to use CakePHP. inC:\xampp\htdocs\cakephp3\config\bootstrap.php on line 38

 

こんな感じのエラーが出た場合

php.ini に extension=intl.so の一行を追加してください。

apatchを再起動し、loclhost/cakephp/ 

これでも開けなかった場合の解決策を紹介します。

 

 

intlがどうこうというエラーが出た場合、

intlをインストールする作業をしなければならないようです。

 

まずは、intlを探します。

$ sudo find / -name *intl.so

intl.soがあれば、ページ下部の◯マークへ

なければ、このまま先へ読み進めてください。

 

 

macportsをインストールしてください。

MacPortsの基本的な使い方とコマンド : アシアルブログ

 

インストールできたっぽくなったら、

$ sudo port version

→Version: 2.3.4

こんな感じで返って来れば完了できています。

 

$ sudo port install php56-intl

これでintlが入ります。

 

しかし、まだです。

このintlが入っているcakephpを作らねばなりません。

 

 

まずcomposerをインストールしてください。

Composer

 $ php composer-setup-php --install-dir=bin --filename=composer

 

 

開発ディレクトリに移動します。

XAMPPの場合はhtdocsですね。

 

 

そこで、

curl -s https://getcomposer.org/installer | php

composer.pharを作成

 

 

php composer.phar create-project --prefer-dist cakephp/app cakephp

これで、cakephpをインストール

 

 

しようとすると・・・エラー発生。

こんな感じに表示されます。

PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/intl.so' - dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/intl.so, 9): image not found in Unknown on line 0

 

あるはずの場所にintl.soないじゃんか!って意味みたいです。

というわけで、あるはずの場所、

'/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/intl.so'

に、intl.soを入れます。

 

ファインダーで「intl.so」を検索。

コピーで、上記のディレクトリへ移動。

 

 

その後、さっきインストールしようとしてエラーになったcakephpを削除し、

再度cakephpのインストール。

php composer.phar create-project --prefer-dist cakephp/app cakephp

これでうまくいったはずです。

 

localhost/cakephpでかっこいいページに飛びます!

f:id:tusukurukun:20160531031424p:plain

おめでとう。

 

これで数日間悩みました。

cakephp諦めようかとも思いました。笑

初心者にとっては挫折ポイントみたいですね。。。

 

環境構築は一つの壁に過ぎないので、今後もプログラミングさらにできるように頑張ります!