中の人です。
Rails5でブラウザの戻るボタンを押した時、直前の表示のまま画面が描画されない動作をするのでなんとなく調べてみた。
controllerでrender plain:'hoge'
とした画面を開いてから、ブラウザの戻るボタンで同システム内の画面に遷移したところ
hogeが表示されたままURLが書き換わる。F5で再描画すると当然本来の画面が表示される。
以下をcontrollerに埋め込み、URL通りに描画されるか確認してみる。
#w = ActionController::Base.helpers.javascript_include_tag 'jquery.js', 'data-turbolinks-track': 'reload'
#w = '<script src="/assets/application-d22e7c94926be5a9960fdc36a34174b5ef9fff0d88ce78fae9ed74d47fd22377.js" data-turbolinks-track="reload"></script>'
w = '<script src="/assets/application-d22e7c94926be5a9960fdc36a34174b5ef9fff0d88ce78fae9ed74d47fd22377.js"></script>'
h=<<-EOL
<!DOCTYPE html>
<html>
<head>
<title>タイトル</title>
#{w}
</head>
<body>
<h1>Test#show</h1>
development
</body>
</html>
EOL
render html: ActionController::Base.helpers.raw(h),status: 200
結果、以下の行があると再描画される。中身はjquery.js
<script src="/assets/jquery-875821d1e3121b366b94ea86a07f3cbc5c76cb16a319bc62212c03a805ff20e9.js" ></script>
ActionController::Base.helpers.javascript_include_tag 'jquery.js'で書くと再描画されない。
内部まで踏み込まないけど、不思議な動作。
SEOに関連して多国語サイトの展開、ツールの作成と紹介、WebServiceの作成と紹介、cakePhpの学習、RubyOnRailsの学習、実際の対象サイトの紹介なんかをするblog。blogである必要があるのか・・・。
2018年9月7日金曜日
2018年8月6日月曜日
jQuery .click() と .trigger('click')
中の人です。
jQueryでaタグをクリックしようとした時に
.trigger('click')は動かない。
.click() は反応する。
少しつまづいたのですが、
a要素にはclickが定義されていない。
だからtriggerすることができない。
.click()は行為なので反応する。
なんとなく投稿。
jQueryでaタグをクリックしようとした時に
.trigger('click')は動かない。
.click() は反応する。
少しつまづいたのですが、
a要素にはclickが定義されていない。
だからtriggerすることができない。
.click()は行為なので反応する。
なんとなく投稿。
2018年7月24日火曜日
Rails5 scope vs self.method [winner scope 勝者はscope]
SEOはあまり関係なくなってきた中の人です。
Rails5 で作業中。ModelでStrong paramsから取得したパラメータを条件にwhereで絞り込みを掛けるにあたり当初self.method_nameとしていましたが、挙動が大きく違うのに気づいてscopeに切り替えました。
2.は当然バグに。
scope一択です。
Rails5 で作業中。ModelでStrong paramsから取得したパラメータを条件にwhereで絞り込みを掛けるにあたり当初self.method_nameとしていましたが、挙動が大きく違うのに気づいてscopeに切り替えました。
- Mode.all.method_name(strong_params).to_sqlは機能しない。
- Mode.where('foo=?',bar).method_name(strong_params)だとwhereで与えた条件が無視される。
2.は当然バグに。
scope一択です。
2017年9月8日金曜日
[Solved] Wordpressにpostieを入れるもGMailに接続できない
中の人です。
Wordpressにメールで投稿できるPostieですが
インストール後、何故かGMailに接続できない。
openssl s_client -connect pop.gmail.com:995
で確認すると接続できない。
ソフトウェアFirewallは切って、ポートは開いているし
cURLでもSocketでもダメ。
当然、GMail側のPOPは許可している。
Googleのアカウントの設定で 安全ではないソフトウェアからの
接続も許可するも変化なし。二段階認証もOFF。
原因不明。
ふと、別のGMailアカウントで接続したところ
何事もなかったかのように接続できた。
新規のGMailアカウントだったので再度
ユーザを作り直して試したところ無事にアクセスできました。
GMailのアカウントに何らかの問題が発生していたとしか
考えられませんが、こんなこともあるんだなと。
以上。
Wordpressにメールで投稿できるPostieですが
インストール後、何故かGMailに接続できない。
openssl s_client -connect pop.gmail.com:995
で確認すると接続できない。
ソフトウェアFirewallは切って、ポートは開いているし
cURLでもSocketでもダメ。
当然、GMail側のPOPは許可している。
Googleのアカウントの設定で 安全ではないソフトウェアからの
接続も許可するも変化なし。二段階認証もOFF。
原因不明。
ふと、別のGMailアカウントで接続したところ
何事もなかったかのように接続できた。
新規のGMailアカウントだったので再度
ユーザを作り直して試したところ無事にアクセスできました。
GMailのアカウントに何らかの問題が発生していたとしか
考えられませんが、こんなこともあるんだなと。
以上。
2017年7月4日火曜日
古いPCにLinux(debian)を入れてみる
中の人です。
古いノートPC( Lavie L770 )のHDDがクラッシュ、
CDドライブが破損している、USBブート不可。
なんとかXPを入れなおすも、まともに動くブラウザがない。
Ubuntuをいれるも、重い。動画がカクカク。ローカルに保存すれば
それなりに再生できるものの、非常に不便。XP並みに軽いOSにしないと。
以下を見つけたのでDebianにトライ。
http://solong.hatenablog.com/entry/2017/01/09/174522
Debian ISOを取得
https://www.debian.org/distrib/netinst
i386、です。
メインPCのVmWareで新規仮想マシンを作成、物理ディスクを
仮想ドライブとして利用して、そこにインストール。
この古いノート、ルートデバイスが30GBを越えると起動しなかった実績があるので
150GBの2.5インチHDDを30GB、120GBに分割。
デスクトップ環境は紹介記事に倣ってLXDE。
以下、試行3回。3回目で成功。
◇1回目
ネットワーク経由のパッケージ インストール予測時間がメインPC環境下で
ありながら50分。ひとまず、そのまま放っておく。
(○○.debian.jpがお勧めとかでていますが、遅い。)
しばらくして確認したら「残り3時間」 。参照するサーバを誤った。
◇2回目
パーティション構成で問題があり、前にインストールしたUbuntuが残っていた。
再インストール。apt関連は理研にした。
残り時間先ほどは3時間とかでしたが今回は20分ぐらい。サーバ選択は重要。
HDDをノートPCに戻す。
Ubuntuでは上手くいったけれど、これで起動するかどうか。
起動した!!・・・が、エラーを吐いている。メンテナンスモードでログインできるようなので
ログイン。
ログ見ると/dev/sda2がマウントできないとエラー。super blockのサイズが間違っているとのこと。
VMWareでインストールするとよくあることですヨネ。
ひとまずフォーマット。
mkfs -t ext4 /dev/sda2
マウントの試行、問題なし。
最終的に改善しない。やり直し。
◇3回目
aptのサーバは奈良大学。こちらも早い。理研は接続不可だった。
2回目は120GBの領域がエラーを吐いていた。多分ノートPCがうまく処理できない。
30GBをルート、5GBをスワップに割り当ててインストール。
HDDをノートPCに戻す。
電源ON・・・起動・・・さくっとマウスアイコンがディスプレイに現れる。
ルーターにpingをうつ。通信できている。
成功!!
chromiumをaptでインストール。
Ubuntuに比べて3~5倍は快適。イライラしなくて済む。
これで何かに使えると感じる程度の環境になりました。
古いノートPC( Lavie L770 )のHDDがクラッシュ、
CDドライブが破損している、USBブート不可。
なんとかXPを入れなおすも、まともに動くブラウザがない。
Ubuntuをいれるも、重い。動画がカクカク。ローカルに保存すれば
それなりに再生できるものの、非常に不便。XP並みに軽いOSにしないと。
以下を見つけたのでDebianにトライ。
http://solong.hatenablog.com/entry/2017/01/09/174522
Debian ISOを取得
https://www.debian.org/distrib/netinst
i386、です。
メインPCのVmWareで新規仮想マシンを作成、物理ディスクを
仮想ドライブとして利用して、そこにインストール。
この古いノート、ルートデバイスが30GBを越えると起動しなかった実績があるので
150GBの2.5インチHDDを30GB、120GBに分割。
デスクトップ環境は紹介記事に倣ってLXDE。
以下、試行3回。3回目で成功。
◇1回目
ネットワーク経由のパッケージ インストール予測時間がメインPC環境下で
ありながら50分。ひとまず、そのまま放っておく。
(○○.debian.jpがお勧めとかでていますが、遅い。)
しばらくして確認したら「残り3時間」 。参照するサーバを誤った。
◇2回目
パーティション構成で問題があり、前にインストールしたUbuntuが残っていた。
再インストール。apt関連は理研にした。
残り時間先ほどは3時間とかでしたが今回は20分ぐらい。サーバ選択は重要。
HDDをノートPCに戻す。
Ubuntuでは上手くいったけれど、これで起動するかどうか。
起動した!!・・・が、エラーを吐いている。メンテナンスモードでログインできるようなので
ログイン。
ログ見ると/dev/sda2がマウントできないとエラー。super blockのサイズが間違っているとのこと。
VMWareでインストールするとよくあることですヨネ。
ひとまずフォーマット。
mkfs -t ext4 /dev/sda2
マウントの試行、問題なし。
最終的に改善しない。やり直し。
◇3回目
aptのサーバは奈良大学。こちらも早い。理研は接続不可だった。
2回目は120GBの領域がエラーを吐いていた。多分ノートPCがうまく処理できない。
30GBをルート、5GBをスワップに割り当ててインストール。
HDDをノートPCに戻す。
電源ON・・・起動・・・さくっとマウスアイコンがディスプレイに現れる。
ルーターにpingをうつ。通信できている。
成功!!
chromiumをaptでインストール。
Ubuntuに比べて3~5倍は快適。イライラしなくて済む。
これで何かに使えると感じる程度の環境になりました。
2017年6月23日金曜日
Centos svn Can't set permissions on tmp Operation not permitted
中の人です。
CentosにSDDを接続、mountして、ソースを置いて、svnでcommitしたところ
Can't set permissions on Operation not permitted
原因はmountしたときに777になるようにmountしたがownerがroot。
commitをしたユーザとは違うので新規ファイルのpermissionに関連する操作をしようとすると
エラーになるようだ。
before
無事コミットできました。
参考にした記事
CentosにSDDを接続、mountして、ソースを置いて、svnでcommitしたところ
Can't set permissions on
原因はmountしたときに777になるようにmountしたがownerがroot。
commitをしたユーザとは違うので新規ファイルのpermissionに関連する操作をしようとすると
エラーになるようだ。
before
sudo mount -ouser,umask=0000 /dev/sdb1 /mnt/svnafter
sudo mount -ouser,umask=0000,uid=,gid=apache /dev/sdb1 /mnt/svn
無事コミットできました。
参考にした記事
http://d.hatena.ne.jp/stakizawa/20080124/t1
2017年6月1日木曜日
PhpStomrのキーマップがCentos Gnomeと被る Confrict keymap of PhpStorm on Centos's Gnome
中の人です。
PhpStom、Ctrl + Bで Jump しますが
Ctrl + Alt + Left は Centos Gnomeのワークスペースの切り替えと衝突します。
どっちを優先するか?
OS側をWindows key + Leftに書き換えて対応しました :-)
PhpStom、Ctrl + Bで Jump しますが
Ctrl + Alt + Left は Centos Gnomeのワークスペースの切り替えと衝突します。
どっちを優先するか?
OS側をWindows key + Leftに書き換えて対応しました :-)
登録:
投稿 (Atom)