2018年12月26日水曜日

[Solved] Rdmineに plugin redmine_holidays_pluginを入れて祝日表示

久しぶりの中の人です。

 RedMineに「redmine_holidays_plugin」を入れようとして
躓いたのでメモ。

以下から入れています。RedMine3ですが問題ないです。

https://github.com/taktos/redmine_holidays_plugin

pluginのviewsの以下のファイルを修正
_holidays_settings.html.erb

<p>
<table>
  <tr>
    <td><%= l(:region) %></td>
    <td><%= select_tag('settings[region]', options_for_select(Holidays.available_regions, @settings['region'])) %></td>
  </tr>
</table>
</p>
init.rb
require 'holidays/core_extensions/date'
class Date
  include Holidays::CoreExtensions::Date
end

Redmine::Plugin.register :redmine_holidays_plugin do 
...


2018年9月7日金曜日

Rails5 ブラウザの戻るボタンを押した時、直前の表示のまま画面が描画されない

中の人です。

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'で書くと再描画されない。

内部まで踏み込まないけど、不思議な動作。

2018年8月6日月曜日

jQuery .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に切り替えました。

  1. Mode.all.method_name(strong_params).to_sqlは機能しない。
  2. Mode.where('foo=?',bar).method_name(strong_params)だとwhereで与えた条件が無視される。
1.はデバッグ時にクエリが確認できない。
2.は当然バグに。

 scope一択です。