New-Village

月間ブログ。だいたい1カ月に1回は更新しているようです。

Nitrousでゼロからアプリ作成(初期環境構築)

なにが良くなかったのか、nitrous上で作成したアプリをherokuにアップロードしたら正しく動かなかったので、ゼロから環境を作り直してみました。

なんど記録したか分からないですが、初期設定から、ある程度アプリができるまでの手順をまとめた記事です。だんだんはてなブログの使い方にもなれてきたので、古い記事よりも分かりやすい内容になっていると自負しています。

f:id:New-Village:20140906163958p:plain

 

続きを読む

アイコンフォント"Font Awesome"を使う

bootstrap-sassでbootstrapのGlyphiconsを使おうと、いろいろ試行錯誤してみましたが、うまくいかなかったので諦めました。

変わりに、RubyGemsでアイコンフォントが提供されていると知ったので、こちらを試してみることにしました。今回利用したのは、"Font Awesome"です。見切り発車なので、どんなアイコンがあるのかも調べずに着手です(笑)

f:id:New-Village:20140901203219p:plain

続きを読む

事前設定で変更するlimit.confって何だ?

仕事でお客様にfluentdを導入しているのですが、fluentdのインストール手順「Fluentdインストールの前に」に「ファイルディスクリプタの最大値を増やす」という項目があります。マシンの再起動が必要になるので、できればやりたくない作業です。

インストールガイドで再起動してくださいと書いてあるので、省略できないとは思うのですが、せめて何故再起動しなければならないのか、くらいは理解しておきたいと思い、調べてみました。

 

続きを読む

作って知ったMVCの住み分けかた

「モデルの役割がビミョーだよね」

なんて思っていたのですが、以下のスライドシェアのスライドを読んで、自分が未熟なことことが良くわかりました。ちゃちゃっとSQLを書く手軽さに比べると、O/Rマッパーを使ったコーディングは、データそのものが見えずらいので使いにくい…そう思っていましたが、餅は餅屋、プログラミングにおいてはO/Rマッパーを使う意味というのが良くわかりました。

で、これを読んでいると、モデルの中に"named_scope"とやら(メソッド?)を仕込んで、コントローラーで必要なネームドスコープを使うことで、データベースの値を動的に捉えるといった考え方が正しいらしい。(後記:スコープはスコープでメソッドとは違うみたいだ…そりゃそうだよね名前違うんだし。)

たしかに、ネームドスコープを使って基本的なデータセットをモデルに定義しておいて、コントローラーで必要なネームドスコープを呼んで、ビューが表示するという関係だとMVCっぽい気がする。

後は読む価値は無いです。僕の反省文です。

続きを読む

gemのインストール場所を調べる

まずは、アプリケーション名の一覧を取得します。アプリケーション名が分かっている場合は不要です。

~/workspace/xapp9(layout*)$ gem list

以下のコマンドを使うことで、gemのインストール場所が表示されます。なお、"bootstrap-sass"の部分は任意のアプリケーション名に変えてください。

~/workspace/xapp9(layout*)$ gem which bootstrap-sass
/home/action/.gem/ruby/2.1.1/gems/bootstrap-sass-3.2.0.1/lib/bootstrap-sass.rb

 

heroku schedulerを使う

ようやくRSSリーダーが完成しました

https://xapp8.herokuapp.com/

セキュリティとかまったく考えていないので、アカウントを作成される際は注意してください。また、同サービスは予告無しに終了しますので、登録したデータは保証されませんのでご注意ください。本気で使い始める人は居ないと思いますが一応。

f:id:New-Village:20140831194123p:plain

さて、RSS作成の最後はフィードの自動更新機能の実装です。

 

■ briefing

今回は、sitesテーブルに登録されているrss_urlからフィードを取得して、feedsテーブルとmainsテーブルに登録します。

なお、フィードの取得はheroku schedulerを使って lib/tasks のrakeファイルを実行させる形とします。今回は計算の結果、1時間間隔で自動収集とします(参考資料参照)。

 

続きを読む

Rails: ボタンを押したら複数のモデルにデータを登録

夏休みを開けてから、何回かアプリを更新しようと努力してきましたが…大きな機能を実装しようとすると、どうしても時間切れになってブログが書けなくなってしまうので、今回からは、こまかく砕いて実装して行きたいと思います。

…そのほうがgithubのContributions(更新頻度に応じて緑が濃くなるやつ)も鮮やかになって良いしね。

 

■ briefing

今回はナビゲーションバーに追加した「新規サイト登録」から、新規ページを登録すると、その下にある「登録サイト一覧」で確認できるようにしていきます。

技術的障害になるかどうかは分かりませんが、下記ページはMainsコントローラー下にあり、新規サイト登録はsitesコントローラー、そして、登録サイト一覧はsbsc (subscribe)コントローラー配下ということで、別のモデル、コントローラー配下にあります。

私のRailsに対する理解度ではこの辺が今回の開発の障害になるのではないか…と踏んでいます。

f:id:New-Village:20140830104913p:plain

続きを読む