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

読者です 読者をやめる 読者になる 読者になる

rails独学して軽く2ちゃんまとめビルダーをつくる。

rails tutorial読破→2chまとめビルダー作成→アメリカでインターンシップ→恋活SNSを作成・・・・・→音で感触をつくり感触をあつめたライブラリをつくる

mecab に単語を追加するユーザー辞書を追加する

まずは動作確認をして追加できることを確かめて安心しよう。 ① コマンドラインでシステム辞書のディレクトリを探すために find / -name "mecab-dict-index" と入力し、 mecab-dict-index のある場所を探す ぼくの環境では /usr/lib/mecab/mecab-dict-index …

&& や || に否定の条件を挟みたい

結論から言えば 条件 && 条件 && (! 条件) というように(! ) を挿入します。 && や || は「かつ」「または」という意味なので、条件には true となるものを置く必要があると勘違いしていた。しかし否定の条件も挟むことができる。 「日本人でかつ 東京都民で…

ruby 特定の文字が含まれていない配列だけとりだす

言い換えれば配列と配列の比較をしたい人のための記事だ。完全一致と部分一致で比較したい人が見るべき。 配列は結局は文字の集まりだから、文字同士の比較と考えよう。 禁止ワードを取り除くとでもいうのか。ruby のクローラーで取り合えずデータ収集したの…

rubyのTwitter::Stream使いツイッターでエクセルで使える名簿を作成する

課題 ・重複削除 ・カテゴリ分け

Ubuntu や Cloud9ruby で natto をインストールがやっとできた。

・natto 使えばmecab いらんやんけ、と思ってる人は間違い。 ・ libmecab.so が入ってない(´;ω;`)って人はgem の前に sudo でいれろ。 まとめ ーーーーーーーーーーーーーーーーーーーーー ①gem install natto でgem のインストール ②sudo apt-get update …

いきなり gem や bundle が使えなくなった。パスの通し方について。

$ export PATH=/usr/local/mecab/bin $ gem install mecab -v '0.996' bash: gem: command not found $ gem install mecab bash: gem: command not found $ find PATH bash: find: command not found $ echo $PATH /usr/local/mecab/bin $ gem install bash:…

nokogiri を使って Youtube の動画とサムネイル画像を拾ってきて。

Nokogiri というrails の gem を使うとインターネット上からテキストやデータや画像を拾ってくれるようになります。今回は youtube の動画を拾ってきて、説明欄や まずはnogogiri という gem をインストールしましょう。 gem install nokogiri その後以下の…

rails でクローラーを使ってで画像を収集してモデルに保存する

ruby で画像収集する記事はたくさんあるけど rails に実装して、モデルに保存するまでのことは書いてくれてなかったので困ったこともあり、書く。 Nokogiri つかうのかなーと思ったけどそこまで大層なことはせずとも open-uri だけで十分だった。 まあまずコ…

rails c で動かなくなったら、 spring stop で解決

moorii:~/workspace/toy_app $ rails c ^C/usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/client/run.rb:117:in `gets': Interrupt from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/client/run.rb:117:in `verify_server_…

エラー内容が空白の NoMethodError: undefined method ` ' for Sample::Application:Class

NoMethodError: undefined method ` ' for ToyApp::Application:Class undefined method の次は ` ' こんな感じでクォーテーションで囲まれた空白という謎なエラーになやまされた。結論からいうとこれは全角スペースが入っているのが原因だ。 しかしだからと…

delayed_job+ clockwork を使って定期的に自動的にデータを保存・更新する。

RailsでAcitiveJobとDelayedJobを使ってバックグランド処理を行う - Rails Webook このサイトがよかったのでこれの抜けているところを補ったり、これを応用してclockwork と連動させて定期的に自動的にモデルにデータを保存できるように改造したのでメモ。 d…

windows環境で clockwork を使って定期的に ruby ファイルを実行する

cron というのもある clockwork というのを使ったら定期的に ruby データを収集したり、記事を更新したりできるので便利だ。その使いかたをかく。 なにはともあれまずruby のコマンドラインで実行できるコードを書いて動くことを確認する。一番簡単なのがロ…

Rails で変数展開したらエスケープされてしまう

もとのコード <% data = ["first", "second", "third"] %> <script> <%= data %> ; </script> <%= data %> 実効結果のコード <script type="text/javascript"> // ruby コードを展開するときエスケープされてしまう・・・ [&quot;first&quot;, &quot;second&quot;, &quot;third&quot;] </script> #html の本文に展開し…

プログラミング初心者に教えるとき当たり前すぎて教えるのを忘れそうなこと

・手っ取り早くしたかったら cloud9 を使え。環境開発が不要 ・自分で環境つくるならテキストエディタ(atomなど)を用意させろ。メモ帳やwordなんてつかわせるな。 ・タブはスペース2つ分 ・GitHub や公式ドキュメントを読める能力 ・GitHub からクローン…

記録を残すことについて

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

(おすすめ。でも未完)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は暗号化しておく。 永続…