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

mmag

ハマったことメモなど

PhoenixでモデルのSchemaに無い属性をレスポンスのJSONに含める

はいっこんばんは。 PhoenixでJSON APIを書いてて迷ったことがあったので書きます。見落としている簡単なやり方があるんじゃないかと。 前提 UserモデルとPostモデルがあり、UserはPostをlikeできるとします。postsテーブルのカラムはidとtitleとbodyがあり…

Phoenix v1.3からディレクトリ構成が変わるっぽい

※ 多分に推測が含まれています。あとでちゃんと調べないと ※ 今まさに海の向こうではElixir & Phoenix Conf 2016が行われているのですが、インタネッツを通してこんなツイートが流れてきました。 Coming in Phoenix 1.3 #elixirconf @elixirphoenix #myelixi…

遅いと思ったときに原因を調べない奴は何をやってもダメ

昨日は遅いと思ったからといってすぐspawnするのはダメとか言っていたけど、もう少し前にやることがあるだろうがオイ、という話。 前々回のエントリで、 こんな遅かったっけ?と思いながらおもむろにspawn と書いた。「こんな遅かったっけ?」と思ったのにそ…

遅いと思ったからといってすぐspawnするのはダメ

昨日は遅いと思ったらとりあえずspawnとか言っていたのが、そうもいかなくなりましたという話。 昨日書いたやつがこれ。Rails Tutorialに沿って書いている。 ## priv/repo/seeds.exs alias PhMicroblog.{User, Repo} defmodule Helper do def insert_user!(n…

遅いと思ったらとりあえずspawn

以前にも書いたように、Rails Tutorialをphoenixでやってたやつをまたちょいちょい書いている。 その中で、seedでダミーのユーザを100人つくるというのがあった。かなり前にseedつくる用のパッケージ書いたなと思い出してメンテしてねぇやべぇとおもったけど…

priv/repo/migrationsが無くてテストもできなかった

昨日はPhoenixアプリをちょっと書いたエントリを書きました。 そのプロジェクトは私物のPCでphoenix newして生成したものなのですが、会社のPCでgit cloneしてmix testとやったら何かエラー。 ** (Mix) Could not find migrations directory "priv/repo/migr…

npmから取ってきたBootstrapをBrunchを通してPhoenixで使ったりした

昨日は老いを感じるエントリを書きました。 懲りずにまた作り直しをちょこちょこと始めたのですが、やっぱりElixir楽しいですね、はい。 Rails Tutorialはこれで3回目くらいですが、昔やってたゲームを引っ張り出してきたような懐かしさが少しあります。 www…

接続端末が同期して光るサイリウムみたいなWebアプリをつくった

やったこと 年末に宴会芸みたいなものをやることになり色々と何をやろうかと話し合っていたのですが、どうにもオモシロな方向に振り切れなさそうだね〜となり、エンタメ方向なことをやりました。具体的には、 数名が舞台で踊る 観客には、あるサイトにスマホ…

Phoenixでgulpとか(brunchじゃないやつ)を使う

Phoenixフレームワークでは、mix phoenix.serverするとデフォルトでbrunchが立ち上がって、 web/staticらへんのファイルを監視してくれます。 とてもありがたいのですが、「え〜、brunch???」と思う方もいらっしゃるでしょう。 そんなときは、おもむろにconf…

phoenixでGET以外のリンクが効かなくなったときのメモ

なにが起きた phoenixのv0.16.0が出たのでガッとアップデートしたら、一緒にphoenix_htmlとかもバージョンが上がりました。動くっしょ〜と何も考えずにいたら、動かなくなってました。 症状は、linkヘルパで作ったリンクの内、GET以外(確認したのはPOSTとDELE…

Phoenixでconfirm付きのdelete

phoenix_htmlのlinkヘルパは、リクエストメソッドがgetの場合は普通にaタグでリンクを作り、そうでない場合はaタグをformでラップして、onclick属性が働くような組み立て方をしてくれます。 で、何かリソースをdeleteするようなリンクでは、「ホントにOK?」…

PhoenixでDBにseed

これが正解みたいな方法は無いのでは。多分。 # priv/repo/seeds.ex alias MyApp.User alias MyApp.Repo Faker.start Enum.each 1..99, fn i -> params = %{name: Faker.Name.name, email: Faker.Internet.email} User.changeset(%User{}, params) |> Repo.i…

phoenix.newがarchiveされるっぽい

以前、Phoenixプロジェクトの新規作成というエントリで書いた方法が、v0.10.0で導入されたbrunch周りでエラーを吐くようになっていて困ったっちー。 そこで、ふとphoenixframework/phoenixのmasterの様子を見てみると、こんなのがマージされてた。さすが、バ…

メモ

Phoenix + Ember(Ember CLI) priv/static/js/にember-cliプロジェクトのdistへのsymリンク貼る。 web/templates/layout/application.html.eexとかに <%= if Dict.get(@conn.assigns, :ember_page, false) do %> <script src="js/dist/assets/vendor.js"></script> <script src="js/dist/assets/emph.js"></script> <% end %> とか書く。さらに、dist/ind…

Phoenixプロジェクトの新規作成

※ 追記 このエントリの内容は古くなっています。以下の記事を参照してくださいな。 phoenix.newがarchiveされるっぽい - mmag 追記終わり。 -- おひさ。 いままでは本家をgit cloneして目当てのバージョンのタグにチェックアウトして、 $ mix phoenix.new my…

テーマはFB matteをベースにしてます。作者さんに感謝を込めて。