Sinatraによる奇妙な映画データベースの構築

4293 ワード

コーディングを開始するずっと前に、私は映画の学生だった.私はLGBT史、エイズの歴史、および古典的な劇場のようなクラスでスクリーンライティングで私の研究を補いました.私はシェイクスピアの奇妙なテーマについての論文を書いた、B -映画ヘーズのコードのQuererness、およびヘーズコードの間、映画の隠れたLGBT性格を見つけること.Pre - covid、私は友人と会って、選択された映画がいくつかからそれのようにいくつかの範囲に集中した定期的な奇妙な映画夜の真夜中に会いました.私はLGBT映画とLGBT映画について多くの多くを知っていると思うのが好きです、しかし、それは私が彼ら全員を見たことを意味しません.

インスピレーションとコミュニティ構築データベース


一部の人々が初めて映画を見て、スクリーンで動物に気がつくとき、彼らは人気があるサイトに行きます.このサイトは、すべての種類のトリガーのための警告の数をホストしていないため、貴重なリソースです.
初めての映画を見て、奇妙なコード化された文字のヒントをキャッチしたら、同じことをしたいです.今、私は通常、私はそれを見て知っているとの行に沿って何かを尋ねる知っている友人に手を差し伸べる
「犬は死んでしまうの?」私は必ずしもプロットのために台無しにする必要はありませんし、全体の概要を読む必要があります.私は質問に答えが欲しい:それは奇妙ですか?残念ながら、この質問は通常簡単な答えを得ることはありません.

大きな絵から管理可能なプロジェクトへ


私は理想的なウェブサイトについて考えましたここで、データベースのコミュニティの追加と提案によって構築することができます.私はまた、映画を予選のためのルールについて考えました、そして、複雑なアルゴリズムのウサギ穴と1つの異なる種類の映画を量る方法の1日後に、私はまだ私がまだ1週間でプログラムを構築する必要があると理解しました.
だから簡素化.LGBT映画のデータベースは、まだコミュニティにキュレーション.私はActiveRecordで見る傾向がある基本的な記録から始めましたユーザーとムービー.映画は、それらを追加するユーザーに属し、ユーザーは多くの映画を持つことができます.

技術的困難


「どうしてそんなことをしてるの?」私が私の人生で2つの異なるものに繰り返す傾向がある何かです:私の猫(「その」は通常家具をつかんでいます、そして、「理由は、私が猫である原因です」、そして、私のコンピュータ).私は、1つのミススペルのために20分のトラブルシューティングを費やすことの落とし穴を避ける方法を見つけようとし続けます、しかし、私は完全にそれを避けることができませんでした.私は集計しないようにしてください、しかし、それらの20分は増します.それが起こるたびに、私は「これを私にレッスンにしてください!私は再びそれのために倒れません!」と言いますしかし、5分後に私は完全にそれが何であったかを忘れてしまった.
それで、20分チャンクの永遠にこれらの無駄なブーブーが私自身の愚かさによって失われるならば、何をすることができますか?
私の欲求不満が構築して、構築して、トラブルを起こして、ファイルの増加している数を通して線でチェックしてください最後に問題点を見つけたユリイカに取って代わられると、フラストレーションはどこかに行かなければならない.時にはそれは勝利の叫び、または笑いとして出てくる、または単に“ああ!私のルームメートが受け入れるようになったことは、現在生命の一部です.重要なことは、あなたが怒って滞在することはできません.ここで唯一の真の敵は自分自身であり、残念ながら、あなたはその人とコーディングを維持する必要がありますので、移動する必要があります.

自分に挑戦


かつて私は、プロジェクトの基本的な要件を持っていた、私は私が含まれてしようとした追加機能の私のリストに行った.私が取り組んだ最初の新しいものはエラーメッセージでした.そして、初期の失敗した試みの後、私がそれをセットアップする若干のヘルプを得たならば、働くのが簡単だったあと.

それから、私はコメントを加えました.そして、それは私が私が想像したオリジナルのデザインに大いに近づきました.現在、ユーザーが映画のページの上で対話に従事して、さらなる詳細を加える機会がありました.
class Comment < ActiveRecord::Base
    belongs_to :movie
    belongs_to :user
    validates :content, presence: true
end
私のリストの次のものは管理者アカウントと特権でした.私はこれと少し後方に行きました、最初にユーザー名管理者とアカウントを播種して、そして、このアカウントが映画とコメントのすべての例を編集するのを許されたハードコーディング.明らかに、それは良い解決策ではありませんでしたが、論理的に、ログインしたユーザーと編集する特定のパラメータを持つ追加のユーザーを許可するための音だったことを確認した後、私はそれをより正確に修正しました.私は私のユーザーに' AccounttTypeタイプ'属性を追加しました、ユーザーは自動的にタイプ'ユーザ'で、そして、この時点で、私がそれを変えることができた唯一の方法は手動でデータベースにアクセスすることによってそうすることになっています、しかし、今のところ、それは私がそれがしたかったもののために働きます!私は、私のルートに固執する簡単な方法さえ作りました.
if @movie.user_id == session[:user_id] || admin_account
            erb :'movies/edit'
        else
            flash[:message] = "You cannot edit that movie."
            redirect '/movies'
        end
私はロジックを設定した後、デザイン側に行きました.私のコメントをより良い方法でラインアップする以外に、私はCSSに時間を費やしませんでした.

私は私の削除リンクのように私の編集リンクをトリックにCSSを使用し始めた.約10分のtinkeringの後、彼らをマッチさせようとして、私は抵抗が少ない経路があるとわかりました.私は両方の同じものにしたい場合は、なぜそれらを同じようにしないでください?それで、私は私の編集をGet Formに作りました.そして、それは事実が非常に明白で、CSSで丸くなった角でtinkeringするより簡単でした.

それは簡単ですが、それだけでそれらのマッチングボタンを見て私は非常に幸せになった.

テイクアウト


他の人よりもこのアプリケーションは、私は非常に何が起こっているかを見て物事の周りのメッセージングと快適に感じ始めた.' Tux 'と'ショットガン'のような宝石を使用して、これは非常に簡単です.私は私のロジックをテストするためにTCXセッションにCSSまたはドロップを編集したので、私はポートを開いて、ライブ時間で見ることができました.私はまた、それは本当に簡単にテストを行うことができた種子データの良い量を設定をオフに始めた.
私はまた、このアプリケーションのために物事を行う順序を設定する方法に満足している.私がそれをした方法はそれをとても簡単にしました、そして、その命令をすることは私がそうする必要があったものの数に圧倒された感じから私を保ちました.これは、アクティブなレコードを使用するときに論理的な順序があることができますあなたが実際にあなたのコントローラに取り組むことができる前に、データベースとモデルを設定する必要があるので、実際にテストするために実際のデータを持つことができます.コントローラとビューは手をつないでいるので、私は彼らを加えたので、一緒にそれらを構築することに集中しました.
完全に私はこのプロジェクトに入るロジックを理解してどのように私は誇りに思っていたと私は最終的に私は完全なプログラムを作成することができます詳細を学ぶことに興奮している!