rails 独学して軽くにちゃんまとめつくる

記録を残すことについて

記録を残しておくことって大事な気がする。過去の蓄積が現在と未来をつくるから。人の体は取り入れる食事と運動によって形成されていて、人の精神は取り入れる情報によって形成されている。ほかにも下に挙げたようなものから形成される。 スマホの利用時間、…

(おすすめ。でも未完)Rails初心者が使うべき思考パターンとその型

Railsでアプリをつくるときある程度型にあてはめて考えたほうがいいと考えていた。RailsTutorialや パーフェクト Ruby on Railsをやって気づいたのは、どんな実装にもある程度型にはまっているということ。もちろん型から外れたものを実装するときもあるし、…

初心者の壁~プログラミングを勉強しようとする人へ~

学習の壁は大きいのが2つある。「初心者の壁」と「脱初心者の壁」がある。 初心者の壁は非常に学習コストが高い。知らないことを学ぶのは非常に手間がかかるしめんどくさいことをたくさんしなくちゃならない。 単語を知らないがために何を調べたらいいのか…

初心者の壁~プログラミングを勉強しようとする人へ~

学習の壁は大きいのが2つある。「初心者の壁」と「脱初心者の壁」がある。 初心者の壁は非常に学習コストが高い。知らないことを学ぶのは非常に手間がかかるしめんどくさいことをたくさんしなくちゃならない。 単語を知らないがために何を調べたらいいのか…

#1 落合流で論文を読む

最近落合陽一というすごい人をみつけまして、筑波大学で助教授をやってるそうです。その人はどうやらメディアとアートを結び付けたいんだそう。空中の物を浮かせたり、シャボン玉をスクリーンにしていたり、ツイッターにはARで空中にパソコンのディスプレイ…

undefined method `each' for nil:NilClass こんなエラーがでた。

別に each でなくとも、 'id' とか 'name' とかがある。 これはエラーに書いてあるように、@microposts の箇所でエラーがでてる。@user.id とか、 @book.title のようにしたときにエラーが出た人もいるだろう。 これはコントローラーで @microposts を定義し…

f.submit に path は書かない。

NoMethodError in Sessions#new undefined method `stringify_keys' for "/login":Stringまた変なミスをした。f.submit に path を指定してしまった。 path を指定するのは link_to なのに。で、その後 path を消したら直りました。

初心者の時につまづきがちなフォーム入力欄のミス

こんなエラーでてないか? SyntaxError in SessionsController#new <%= f.email_field :email ,class: "form-control" %> <%= f.label :password %> <%= f.password_field, :password ,class: "form-control" %> <%= f.submit "ログイン", login_path, class…

NoMethodError in UsersController#createundefined method `user' for こんなエラーがでてきた。 つかってるのは @user だから user なんて使ってないから知らんわ、と思っていた。よくわからんからエラーの箇所をコメントアウトしてtrue にしたらエラーが…

Couldn't find User with 'id'=#  というエラーがでた。

Couldn't find User with 'id'=#<ActionController::Parameters:0x007f9ad8f88b60> バカみたいなミスだが、コントローラーの create アクションでは def create @user = User.find(params[:id])end といった find で探すのではなく def create @user = User.new(user_params)end という new で新たに作りだす</actioncontroller::parameters:0x007f9ad8f88b60>…

bootstrap ヘッダーで詰まったとこ

・メニューが横並びにならない・font awesome のアイコンと文字がずれる メニューが横並びにならない。 <ul class="nav nav-pills pull-right"> <li> <%= link_to root_path, class: "nav-pills" do %> <i class="fa fa-home" aria-hidden="true"></i> ホーム </li> <li> <%= link_to new_event_info_path, class: "nav-pills" do %> </li></ul>

rubyでランダム数字取り出すまとめ~個数選択、番号順~

(1..100).to_a.shuffle こうしたら [43, 52, 17, 37, 32, ・・・・26, 62] こんなのがでてくる。ランダムな順番で100個。しかし100は多いから制限をかけて 10個にしよう。 (1..100).to_a.shuffle[0..10] すると => [83, 75, 47, 80, 67, 36, 95, 8, 53, 3…

gem kaminari で undefined method `page' for

gem kaminari で undefined method `page' for というエラーが出る。 これは Ctrl + C を押せば解決する。 will_paginate でも同様のことがあった。 理不尽だったり、正しいのにエラーがでてる場合はいったんサーバーをおとそう。

unknown attribute XXX_id と言われたのでカラムを消して、作った。

unknown attribute XXX_id というエラーをはかれたかたは、単純にそのカラム名をつけわすれています。 unknown attribute event_id とかかれた方は以下のコマンドでカラム名の一覧をたしかめてみてください。 たとえば User Ticketモデルの中のカラム名をさ…

フォーム送信でエラーがでたら

・モデルファイル ・コントローラー ・ルーティング ・ヘルパー ・ビュー の4つをきちんと確かめる。 モデルファイルをきちんと確かめなかったから無駄に時間をくわれた。

undefined method `content' というエラーがでた

rails でフォーム欄に <div class="form-group"> <%= f.label :content %> <div> <%= f.text_area :content, class: "form-control", row: 10 %> </div> </div> undefined method `content' というエラーがでてしまう。そもそも contentはメソッドじゃないのに。 そう思いよくみてみると conent という…

2にちゃんねるまとめビルダー作り方(2) 色を付ける

前回 id とレスを抽出するための jQuery のコードが var id = $("dt[res=' 2 '] span").attr('val'); var res = $(" dt[res='2'] ").next(); であることがわかりました。 では次に色をつけていきましょう。 2 : 名無しさん@おーぷん :2016/09/02(金)00:15…

2にちゃんねるまとめビルダー制作過程(1)構文解析

ある程度進んだので進捗状況を書きます。 まずしたことは 2ちゃんねるのタグの構造を分析です。 >|javascript| 2 : 名無しさん@おーぷん :2016/09/02(金)00:15:30 ID:FgY (主)||< 筋書きの無い寓話の果てに。 このままじゃさっぱりわからないので、構文解…

おんj民なのにまとめやアフィ嫌ってる奴wwwwww

2: 名無しさん@おーぷん 2016/12/21(水)21:36:38 id:ygT おーぷん2ちゃんねるはまとめ転載自由な掲示板やで分かってて書き込んどるんちゃうんか 5: 名無しさん@おーぷん 2016/12/21(水)21:37:09 ID:6Os そんなんおらんでシャドウボクシングやめーや 7: 【5…

ワイまとめ管理人、アドセンスで1日3000円の収益を達成

1: 名無しさん@おーぷん 2015/09/30(水)12:55:37 id:kPB 素直に嬉しいhttp://i.imgur.com/y3sPRcw.png 39: 名無しさん@おーぷん 2015/09/30(水)13:11:37 id:Z8O >>13000円/日の収益を得るにはどんくらい人呼ばなきゃあかんの? 44: 名無しさん@おーぷん 2…

rubyファイルにrailsのコマンドを入力させる。

test.rb @title = "titletitle" @link = "linklink" puts @titileここに render 'partial' をいれたい! puts @link こういう ruby ファイルがあったとする。コードの中にもあるように、あそこにパーシャルをいれたいとき、どうすれいいだろうか。このままな…

Rubyのコンソールで出力したのをrails でも出力したい。

anemone と nokogiri でどうにか文字を取得してコンソールに出力させることはできたが、 rails に出力させることができずに困っていた。なんとか解決できたのでここに記す。 たとえばヤフーニュースのタイトルを抜き出したとする yahoo.rb require 'open-uri…

(create) newで受け取ったのを処理する

createは条件分岐処理する。どちらにせよメッセージと移動先を指定する。成功ならredirect_to 失敗なら render 。先頭で @user を宣言しておいて、 if @user.save で条件分岐する。

(new)新規作成フォームをかく

<% provide(:title, 'Sign up') %> <h1>Sign up</h1> <div class="row"> <div class="col-md-6 col-md-offset-3"> <%= form_for(@user) do |f| %> <%= f.label :name %> <%= f.text_field :name %> <%= f.label :email %> <%= f.email_field :email %> <%= f.label :password %> <%= f.password_field :password %> <%= f.l…</div></div>

(show)showページをかく

def show @user = User.find(params[:id]) end <% provide(:title, @user.name) %> <div class="row"> <aside class="col-md-4"> <section class="user_info"> <h1> <%= gravatar_for @user %> <%= @user.name %> </h1> </section> </aside> </div> ユーザーヘルパー def gravatar_for(user, options = { size: 80 }) gravatar_id =…

(edit) ユーザーの編集

これも edit のセオリー通りにすればいい。 gravatar の編集は汎用性がないので省略する。ポイントは、 new と edit のフォームが重複しているので初めっからリファクタリングしておくことにする。これはトリッキーな発想ではなく、scaffolding をしたときも…

ユーザー作成

コントローラー rails g controller Usrs ルーティング signup 'signup' => 'users#new' resources :users ビュー show <% provide(:title, @user.name) %><div class="row"> <div class="col-md-4"> <section class="user_info"> <h1> <% gravatar_for @user %> <% @user.name %> </h1> </section> </div></div> 画像を与えるために gravatar_for メソ…

フォーム作成画面

・エラーメッセージをいれるのを忘れずに ・ <div class="row">と <div class="col-md-6"> に囲んでから <% render 'shared/micropost_form', f.object %>という風にかく。 ・リファクタリングをしよう ・普通の入力欄は class: "form-control"、ボタンは class: "btn btn-primary" <div class="row"> <div class="col-md-6 col-md-offset-3"> <%= form_for(@</div></div></div></div>…

マイクロポストの作成

$ rails generate model Micropost content:text user:references インデックスをいれる class CreateMicroposts < ActiveRecord::Migration[5.0] def change create_table :microposts do |t| t.text :content t.references :user, foreign_key: true t.tim…

パスワードのリセット

ユーザーがパスワードの再設定をリクエストすると、ユーザーが送信したメールアドレスをキーにしてデータベースからユーザーを見つける 該当のメールアドレスがデータベースにある場合は、再設定用トークンとそれに対応するリセットダイジェストを生成する …

アカウントの有効化

メールの体裁,メールの送信 $ rails generate mailer UserMailer account_activation password_reset これをすると以下のファイルなどが作られる. メーラーのフロントエンド HTMLのテンプレート app/views/user_mailer/account_activation.html.erb テキス…

ログイン前後の制御

ログイン前後でヘッダーの画面を切り替えるのはすでにしているが、ログインしないと見れないページを作成したり、編集できるのは自分のプロフィールだけにしたりなどしなきゃならないことはまだまだある。それをしていくのがこの記事の目的。 コントローラー…

(delete)削除機能を実装する

専用のビューはない。index の名前の横に delete ボタンを実装することになる。ただ、管理者権限を作成し、管理者だけが削除できるようにする箇所がややこしいので注意。あと、delete ボタンは html でmethod : delete という風にするので初めてなら注意。 ①…

(index)一覧画面

これといった特徴は、ページネーション機能を付けるのと、偽ユーザーの作成、パーシャルの使用くらいかな。あとは scaffolding どおりに忠実に実行すればいい。 gemの準備 gem 'will_paginate', '3.1.0' gem 'bootstrap-will_paginate', '0.0.10' gem 'faker…

(update)ユーザの更新

10章 users_controller 編集画面で作成したデータの更新ができたかどうかを判断する。 成功: flashでメッセージ 表示場所:application.erb 渡し場所:コントローラー失敗: errorでメッセージ 表示場所:フォーム画面 渡し場所:自動 成功時はredirect_to …

永久セッションをつかうログイン機能

記憶トークンにはランダムな文字列を生成して用いる。 トークンはハッシュ値に変換してからデータベースに保存する。 ブラウザのcookiesにトークンを保存するときには、有効期限を設定する。 ブラウザのcookiesに保存するユーザーIDは暗号化しておく。 永続…

簡素なログイン機能

ログイン機能をリソースとして作られていることに注意する。セッションリソースでログイン画面を作成する。そこで得たメルアドとパスワードをデータベースから参照する。あれば、ログインする。 ログイン前後で表示を切り替えてはじめて役にたつ。 (new)フォ…

エラーメッセージの追加

エラー時のメッセージと、成功時のメッセージの2つがある。 エラー時のメッセージはrailsがいろいろと機能を付けてくれているのですんなりかける。成功時のメッセージは flash というのをつかって自分で作らなければいけない。でも少ない。どっちも簡単って…

ユーザー画面に画像を追加する

gravatar というサービスを使う。gemを使うわけではなく、ただ単にヘルパーを作成し、そのヘルパーを使いたい場所で呼び出すだけ。 gravatar_forというヘルパーを作成する app/helpers/users_helper.rb def gravatar_for(user, options = { size: 80 })grava…

ユーザー画面に画像を追加する

gravatar というサービスを使う。gemを使うわけではなく、ただ単にヘルパーを作成するだけというお手軽作業。 gravatar_forというヘルパーを作成する app/helpers/users_helper.rb def gravatar_for(user, options = { size: 80 })gravatar_id = Digest::MD5…

2.静的ページを作成

・コントローラー作成 ・bootstrapの準備する。 assets/stylesheets/custom.scssに @import"bootstrap-sprockets"; @import"bootstrap"; ・gitにプッシュ ・application.html.erbで共通パーツを作る ・リファクタリングする (header, footer, shim, rails_de…

Rubyによるクローラー開発技法をよんで part1

1章でWgetというソフトをつかってクローラーとはなんぞやというのを勉強するが、うまくいかなかったのでやめた。Wgetというのは後から使うものではないので、飛ばしてもよし。だから2章から勉強を始めるちなみに2章にはさまざまなソースコードが出てくるが、…

railsで管理者権限を持たせる

特権を持たせるユーザーを指定する方法を学ぶ。利用方法はサイトの副管理人をつくったり、管理人としての特権を持たせたりできる。実装自体は非常に簡単。持たせる機能も削除機能に制限する。 とは言っても単純で、モデルにadminカラムを追加し、ビューでdel…

railsに画像アップロード機能をつける

画像アップロードとその表示、画像の検証の2工程に分かれている。 画像アップロードでは、アップローダーを作成し、マイグレーションでpictureカラムを付け加える。モデルにアップロード機能を追加した旨を記述し、コントローラーのストロングパラメーター…

rails tutorialでherokuにデプロイできなかったができた。

もしくはcloud9を使ってる人で出来ない人はよんでください。 これを解決するのに累計5時間くらいかかった。。。もう死にたい。 Warning: Permanently added 'bitbucket.org,104.192.143.3' (RSA) to the list of known hosts.conq: repository does not exi…

12章

?through sourseの意味がわからない。 has_many :passive_relationships, class_name: "Relationship" , foreign_key: "followed_id", dependent: :destroy これで、passive_relationships というモデルはないから、class_nameとforeign_keyで自作しましたっ…

7章やってること

ユーザー一覧を作る。 そのためにすでに rails console でユーザーを作っておく。 ルーティングでusersをresourcesで設定 コントローラーでアクション設定

rails tutorial 5章 

ルーティングをgetで書き直して、link_to に変える その後リンクをテストする。 ユーザーコントローラーを作成 とくに難しいのがなく、楽々で終わらせられた。書くことは特になし。

rails tutorial 11章 を読んで

データベースを関連づけるのにhas_manyなどをつかい、user.micropost.createというのをかけるようになったが、 ser_idは自動的に正しい値に設定されます。 と書いてあることから、userとmicropostには同じカラム名が存在することが養成されているということ…

rails テストのときにきをつけることの問いかけ

rials tutorialでtestを勉強したが、結局どんなことを確認してるのかをまとめて自分でも再現できるようにした。 まず行きたいページにいけ。 get 個別の値は変数で定義しておいたか? 入力したい値はあるか?あるならpost 探したいリンクはあるか?あるならa…