ihatov08 blog

プログラミング初心者だけどRailsとSwiftマスターします

bootstrapだけじゃなかった。「materializecss」ってサービスもあったのね。

materializecss.com bootstrapだけかと思っていたら、かなり似ているサービスがあった。 javascriptのコードも埋め込まないといけないようで、少し手間な気がする。。

railsのエラーメッセージの順番

is not a numberやcan't be blankなどのエラーメッセージの順番は、バリデーションを実行した順番になる。 これはモデルクラスの中でvalidatesメソッドやvalidateメソッドを並べた順番になる。 フォームの入力欄の並びと同じ順でエラーを表示したいときは、v…

railsのエラーメッセージのカスタマイズ

日本語化 gemパッケージrails-i18nを使う bundle install後はサーバー再起動すること エラーオブジェクトのaddメソッドの第2引数は、acceptedやblankなどのエラー名をシンボルで指定できる。 モデルのエラーオブジェクトはerrorsメソッドで取り出せる。 エ…

buildはすごく便利

例えばtweetするときに、tweetしたuserと関連付けたい。 まずはtweetモデルにuser_idカラムを追加して、どのuserの投稿か判別するようにする。 さらに、モデル間のアソシエーションをする。 tweetを投稿するviewのformからuser_idを選択もしくは、hidden_fie…

作成日時をshowページのリンクにする方法

作成日時をshowページのリンクにする方法。 ""の中に式展開する。''だと式展開にならないので注意。 created_atゲッターでインスタンスの作成時間を取得する。 strftimeメソッドで時間を取得できる。 引数で表示方法を変えることができる。 <%= link_to "#{@…

railsで独自のバリデーションメソッドを実装する

画像ファイルのアップロードのバリデーションを独自で定義してみた。 定義したのはcheck_imageメソッド。名前は任意で構わない。 if !['.jpg', '.png', '.gif'].include?ではjpg,png,gifファイルだったら、エラーにする。 errors.addでerrors連想配列にimage…

deviseでエラーメッセージを表示させる方法

deviseはフラッシュでエラーメッセージを表示させるので、以下のコードでエラーメッセージを表示させることができる。 <% if notice %> <p class="alert alert-notice"><%= notice %></p> <% end %> <% if alert %> <p class="alert alert-error"><%= alert %></p> <% end %> もしくは以下のコードをviewに追加するだけでもよい f…

add_indexにnameをつける方法

indexにnameをつけたい場合はnameオプションでindex名を指定する。 add_index :favorites, [:tweet_id, :user_id], unique: true, name: 'TWEET_ID_USER_ID_UNIQUE' 例2 remove_index :members, name: 'name_index'

mysqlでデータを縦に表示する方法

カラムが増えると改行されて見づらくなる。それをたてに表示する方法。 select * from bank_accounts \G; \Gをつける

小さな喜びを大切に

プログラミングをはじめて半年。 まだまだ世に出ているアプリのような、大そうなものは作ることはできない。 ネットで公開されている誰かのように、独学で爆速で成長して、独自のウェブサービスを公開できているわけでもない。 そんなすごい人たちと比較する…

安くおしゃれになる方法。

GU

nikkan-spa.jp これいいな。春からこれでいこう。

railsでnewページをmodalで表示させる方法

参考にしたサイト。 Rails 4 submit modal form via AJAX and render JS response as table row - Eric London's Blog このサイトの通りに作成したら、本当にnewページをbootstrapのmodalで表示することができた。 なんでこの結果になるのかコードを読み込ん…

日中仕事でその後はずっとプログラミング

8月にスパルタキャンプに参加してから、日中仕事をして、その後はプログラミングの生活をずっと送ってきている。 仕事の後のプログラミングはけっこう大変。楽しいけれど、仕事で疲れている中、頭を使うプログラミング。土日もどっぷりプログラミングしてい…

RailsのMVC

1ブラウザは/usersというURLへのリクエストを発行する。 2Railsは/usersをUsersコントローラ内のindexアクションに割り当てる (ルーティング)。 indexアクションはUserモデルに「すべてのユーザーを取り出せ」と指示する (User.all)。 Userモデルはすべての…

deviseでログイン情報を記録するチェックボックスを設置する方法

stack over flowより 6 down vote favorite I'm making a Rails App. I'd like to implement a check box 'remember me' for users to skip enter password from next time with using Devise:rememberable.but I can't figure out how to implement. if you…

良い椅子とディスプレイは欲しい

良い椅子とディスプレイは欲しい。 それにうどんはいい作戦だなと思った。 uinyan.com

railsでチェックボックスのバリデーションの実装方法(単数と複数の場合)

かなり悩みました。合わせると10時間くらいは悩んで、ググっていたような。PHPキャンプで講師の先生に条件分岐、アルゴリズムについて教えてもらったら(全然関係のないナベアツ、素数判定だが)、チェックボックスの実装についても閃いた。 まずは「規約…

railsのHTTPメソッド

HTTPのメソッド メソッド 機能 アクション GET リソースの要求 POST リソースの送信 HEAD ヘッダー部分だけを要求 PUT リソースの置換 PATCH リソースの一部更新 update DELETE リソースの削除 destroy 操作 Verb create POST read GET Update PATCH Delete …

gitを学ぶ

gitを学ぶのに最適なサイト。 このサイトでとりあえず学びたい。 www.atlassian.com

入れ子のルーティング(memberとcollection)

memberを用いるとusers/:id/◯◯のようなルーティングを生成することができる。 コントローラでidをprams[:id]で受け取ることができるので、showやeditのようなuserひとりひとりに用いるアクションの場合にmemberを用いる。 collecitonを用いるとusers/◯◯のよ…

Railsでいいね!機能の実装方法

GitHub - ihatov08/gatebook 前提としてuserモデルとtweetモデルがあり、アソシエーションをしている。 いいね!機能にはどのuserがどのnoteにいいね!をしているのかという2つの情報が必要になる。 例えば idが1のuser idが5のtweetにいいね!をしたとき、…

別のコントローラをrenderする方法

createアクションで投稿の保存に失敗した場合(バリデーションに失敗)、再度フォームを表示しないといけない。 これまではrender :newでtweets/new.html.erbで表示されていたが、フォームをtweetsフォルダ以外のviewに移した場合、今回はhome/top/html.erbに…

TweetにログインユーザーのIDが自動で入るようにする

formからログインユーザーのIDを入れたり、選択式にすることもできる。 もしくはhidden_fieldとcurrent_user.idを用いて擬似的に自動的にログインユーザーのIDをformで送ることもできるが、下記では違う方法を紹介。 ストロングパラメータではuser_idを受け…

一覧を表示する順番を指定する

indexアクションは初期段階では Tweet.allなどで記述していると思うが、順番を並べ替えたい時の記述方法 @tweets = Tweet.all.order(created_at: :desc) #=>新しい順の投稿一覧 #created_atは作成日時 descは降順 @tweets = Tweet.all.order(created_at: :as…

deviseの使い方

deviseとは簡単にログイン機能が作れるgemパッケージ。 deviseをインストールする準備。 Gemfile source 'https://rubygems.org' gem 'devise', '3.5.1' $ bundle install #deviseをインストール rails g devise:install #deviseを利用可能な状態にする。 ロ…

画像を保存して表示する方法

imageカラムを用意する。 string型でよい。 $ rails g migration add_image_to_users image:string 以下のコードでも可能。 $ rails g migration AddImageToUsers image:string ```` データベースに反映させる。 $ rake db:migrate アプリケーション側で用意…

パーシャルへオブジェクトを渡す方法

'tweets/tweet'で_tweet.html.erbを呼び出すことができる。userフォルダからtweetsフォルダ内のパーシャルを呼び出すにはフォルダ名の指定が必要。 note: noteはパーシャルで用いられている変数。 <% @tweets.each do |tweet| %> <%= render 'tweets/tweet',…

whereメソッドとアソシエーション

userとtweetモデルが存在して、userのshowページでuser個人の情報を取得しつつ、userが投稿したtweetすべてを取得する方法。 whereメソッドを用いる。 @user.idが1の場合、user_idが1のtweetを取得できる。 def show @user = User.find(params[:id]) @twee…

tweetモデルとuserモデルの関連付け アソシエーションの例①

tweetモデルとuserモデルが存在したら、tweetモデルにuser_idカラムを追加する。 $ rails g migration add_user_id_to_tweets user_id:integer 下記でも同じ。 $ rails g migaration AddUserIdToTweets user_id:intger migration行い、データベースに反映さ…

Gitの使い方も同時に覚え無いとダメ

入社試験がこの前終わった。結果は追試。原因分析。Ruby on Railsを学んでいるが、同時にhtml/cssもgitの使い方も学ばなければいけないということ。 html/cssは最終的にはデザイナーに任せることになるかもしれないけれど、モックアップは作成できるように、…