「rails generateができない時」Rails メモ②
「rails generateができない時」rails メモ①
$ spring stop
$ rails generate で解決。
参考記事
http://app.road.jp.net/?p=1679
progate中級編 Ruby on Rails 暗記すべきもの一覧 Railsメモ①
progate中級編 Ruby on rails メモ
暗記したほうがいいもの
-----------------------------------------------------------------------------------------------------
progateのRuby on Railsを学習していく中で、
どちらかというと理解して書いていくというよりは、
暗記しておく方がいいのでは!と思ったものをメモしました。
初心者の目線からの暗記すべき重要項目なので、
まだ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/ で起動してみてください。
こんな感じの画面になれば成功なのですが・・・・・。
この方と同じエラーにはまりました。
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 の一行を追加してください。
これでも開けなかった場合の解決策を紹介します。
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をインストールしてください。
$ 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でかっこいいページに飛びます!
おめでとう。
これで数日間悩みました。
cakephp諦めようかとも思いました。笑
初心者にとっては挫折ポイントみたいですね。。。
環境構築は一つの壁に過ぎないので、今後もプログラミングさらにできるように頑張ります!