<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>rc_plan (void)</title>
    <link>https://ruby-china.org/rc_plan</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Redmine plugin 开发 patch model 不成功求解惑……</title>
      <description>&lt;p&gt;想用插件的方法 TimeEntry 这个 model 中增加一个 validate，一直不成功，请哪位有经验的大神解解惑
patch 文件位置#{Rails.root}/plugins/time_entry_limit/lib/time_patch.rb&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'time_entry'&lt;/span&gt;

&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;TimePatch&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:include&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;InstanceMethods&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;class_eval&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
      &lt;span class="n"&gt;unloadable&lt;/span&gt;
      &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:issue_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;presence: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;InstanceMethods&lt;/span&gt;

  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="no"&gt;TimeEntry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:include&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;TimePatch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;plugin init 文件地址#{Rails.root}/plugins/time_entry_limit/init.rb&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'redmine'&lt;/span&gt;


&lt;span class="no"&gt;ActionDispatch&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Callbacks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_prepare&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s1"&gt;'require ok===================='&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;require_dependency&lt;/span&gt; &lt;span class="s1"&gt;'time_patch'&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="no"&gt;Redmine&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Plugin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt; &lt;span class="ss"&gt;:time_entry_limit&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="nb"&gt;name&lt;/span&gt; &lt;span class="s1"&gt;'Time Entry Limit plugin'&lt;/span&gt;
  &lt;span class="n"&gt;author&lt;/span&gt; &lt;span class="s1"&gt;'Author name'&lt;/span&gt;
  &lt;span class="n"&gt;description&lt;/span&gt; &lt;span class="s1"&gt;'This is a plugin for Redmine'&lt;/span&gt;
  &lt;span class="n"&gt;version&lt;/span&gt; &lt;span class="s1"&gt;'0.0.1'&lt;/span&gt;
  &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="s1"&gt;'http://example.com/path/to/plugin'&lt;/span&gt;
  &lt;span class="n"&gt;author_url&lt;/span&gt; &lt;span class="s1"&gt;'http://example.com/about'&lt;/span&gt;

  &lt;span class="n"&gt;settings&lt;/span&gt; &lt;span class="ss"&gt;:default&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;'small'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="ss"&gt;:partial&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'settings/time_entry_limit_plugin'&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;代码如上&lt;/p&gt;

&lt;p&gt;可是每次添加工时也就是往 time_entries 添加纪录时 issue_id 为空还是能添加成功&lt;/p&gt;

&lt;p&gt;求助啊，要崩溃了……&lt;/p&gt;</description>
      <author>rc_plan</author>
      <pubDate>Thu, 30 Aug 2018 10:56:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/37413</link>
      <guid>https://ruby-china.org/topics/37413</guid>
    </item>
    <item>
      <title>关于 Rails 的时区问题</title>
      <description>&lt;p&gt;大家好，先谢谢大家，关于 rails 的时区有个问题请大家解答一下……&lt;/p&gt;

&lt;p&gt;项目 application.rb 中的关于时区设置是这样的&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time_zone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Beijing'&lt;/span&gt;
&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;active_record&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;default_timezone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;:local&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后解析时间字符串是这样的&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Time.parse&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'2018-1-1 12:00:00'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; 2018-01-01 12:00:00 +0800

Time.zone.parse&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'2018-1-1 12:00:00'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; Mon, 01 Jan 2018 12:00:00 CST +08:00
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所以……问题是这样的&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;irb&lt;span class="o"&gt;(&lt;/span&gt;main&lt;span class="o"&gt;)&lt;/span&gt;:003:0&amp;gt; Page.create&lt;span class="o"&gt;(&lt;/span&gt;title:&lt;span class="s1"&gt;'xxx'&lt;/span&gt;, content:&lt;span class="s1"&gt;'xxx'&lt;/span&gt;, push_time: &lt;span class="s1"&gt;'2018-1-11 12:00:00'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
   &lt;span class="o"&gt;(&lt;/span&gt;0.0ms&lt;span class="o"&gt;)&lt;/span&gt;  BEGIN
  SQL &lt;span class="o"&gt;(&lt;/span&gt;0.5ms&lt;span class="o"&gt;)&lt;/span&gt;  INSERT INTO &lt;span class="sb"&gt;`&lt;/span&gt;pages&lt;span class="sb"&gt;`&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;title&lt;span class="sb"&gt;`&lt;/span&gt;, &lt;span class="sb"&gt;`&lt;/span&gt;content&lt;span class="sb"&gt;`&lt;/span&gt;, &lt;span class="sb"&gt;`&lt;/span&gt;push_time&lt;span class="sb"&gt;`&lt;/span&gt;, &lt;span class="sb"&gt;`&lt;/span&gt;created_at&lt;span class="sb"&gt;`&lt;/span&gt;, &lt;span class="sb"&gt;`&lt;/span&gt;updated_at&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; VALUES &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'xxx'&lt;/span&gt;, &lt;span class="s1"&gt;'xxx'&lt;/span&gt;, &lt;span class="s1"&gt;'2018-01-11 12:00:00'&lt;/span&gt;, &lt;span class="s1"&gt;'2018-01-11 12:54:53'&lt;/span&gt;, &lt;span class="s1"&gt;'2018-01-11 12:54:53'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
   &lt;span class="o"&gt;(&lt;/span&gt;10.2ms&lt;span class="o"&gt;)&lt;/span&gt;  COMMIT
&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;#&amp;lt;Page id: 4, title: "xxx", content: "xxx", push_time: "2018-01-11 04:00:00", created_at: "2018-01-11 04:54:53", updated_at: "2018-01-11 04:54:53"&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就是我传入时间字符串是'2018-1-11 12:00:00'  ，但是数据库存储的时候变成了  "2018-01-11 04:00:00"&lt;/p&gt;

&lt;p&gt;求教啊，为什么会出现这样的问题，怎么解决这种问题啊？&lt;/p&gt;</description>
      <author>rc_plan</author>
      <pubDate>Thu, 11 Jan 2018 12:58:16 +0800</pubDate>
      <link>https://ruby-china.org/topics/34870</link>
      <guid>https://ruby-china.org/topics/34870</guid>
    </item>
  </channel>
</rss>
