Caveman kills ruby on rails - Chapter 12

Meta info

対象読者

NOTE

筆者はcavemanを捨てsnoozeを使うようになった。 詳細はここに記してある。

Introduction

本稿は原著の各章をCommon Lispに翻訳するシリーズの第12章である。 Cavemanにはjavascript周りをいい具合に導入できるようなサポートはない。 原始的で愚直な最低限の事のみを行う。

よって12.1、12.2、12.3章はTODOとして無視する。

12.1 credentials

12.2 asset pipeline

12.3 Sass

12.4 javascript

Cavemanに於いてjavascriptを書く場合、ソースはデフォルトではstatic/js/下に配置することとなる。

jQuery

いい具合に導入できたりはしない。 ここではgoogleのCDNを利用することとする。

templates/layouts/app.html

<head>
        <meta charset="utf-8">
        <title>{% block title %}Your-app{% endblock %}</title>
        <link rel="stylesheet" type="text/css" media="screen" href="/css/app.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
</head>

extends article form.

jsコードを以下のように作成。

static/js/articles.js

$(document).ready(function(){
        var cb = $("#no-expiration");
        var field = $("#article-expired-at");

        var changeExpiredAt = function(){
                if (cb.prop("checked"))
                        field.hide()
                else
                        field.show()
        }

        cb.bind("click", changeExpiredAt);

        changeExpiredAt();
});

scriptタグを追加。

templates/articles/new.html

{% block content %}
<script src="/js/articles.js"></script>

Summary