<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>zhzenghui (zhzenghui)</title>
    <link>https://ruby-china.org/zhzenghui</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>Homeland 的 Ajax 调用时如何实现的啊?</title>
      <description>&lt;p&gt;我想实现列表项被删除后，刷新页面，也就是 Ajax 返回后，做刷新动作就好.
我做了下面代码的动作，&lt;/p&gt;
&lt;h3 id="没找到coffee代码, Ajax的操作不知道怎么做."&gt;没找到 coffee 代码，Ajax 的操作不知道怎么做。&lt;/h3&gt;
&lt;p&gt;我参考了管理界面回复删除操作。&lt;/p&gt;

&lt;p&gt;erb&lt;/p&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;link_to&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;admin_reply_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reply&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'data-confirm'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Are you sure?'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;method: :delete&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;remote: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;class: &lt;/span&gt;&lt;span class="s2"&gt;"fa fa-trash"&lt;/span&gt; &lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;app&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;destroy&lt;/span&gt;
  &lt;span class="vi"&gt;@reply.destroy&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;# 连 render json: { ok: 1 }  都没有，困惑？??&lt;/p&gt;

&lt;p&gt;在 log 里能看到
  Rendering admin/replies/destroy.js.erb
  Rendered admin/replies/destroy.js.erb (0.8ms)
我自己抄的没有上面对应的 log 输出&lt;/p&gt;

&lt;p&gt;我自己照着抄的，就没有反应。肯定我少写了什么。我自己写 coffee，也完全没有用。文件都没有生成。
配置文件又是这样的。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;assets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;precompile&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="sx"&gt;%w(app.js front.css turbolinks-app.css admin.css)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;官网文档的实现和 homeland 完全不一样。谁有研究过吗，求帮助，谢谢了。&lt;/p&gt;</description>
      <author>zhzenghui</author>
      <pubDate>Sat, 02 Sep 2017 04:38:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/34000</link>
      <guid>https://ruby-china.org/topics/34000</guid>
    </item>
    <item>
      <title>关于 NoSQL 设计标签系统的问题</title>
      <description>&lt;p&gt;反正也没人 删掉吧&lt;/p&gt;</description>
      <author>zhzenghui</author>
      <pubDate>Tue, 25 Aug 2015 00:47:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/27069</link>
      <guid>https://ruby-china.org/topics/27069</guid>
    </item>
    <item>
      <title>SQL 的问题，活动的列表里面需要获取当前用户的是否喜欢了某一条活动 </title>
      <description>&lt;p&gt;活动的列表里面需要获取当前用户的是否喜欢了某一条活动，我不知道 rails 该怎么写这个 sql，有没有大神给个思路，或者给个链接什么。rails 新手求帮助&lt;/p&gt;

&lt;p&gt;是要先执行 分页活动列表搜索，然后再进行当前用户喜欢的判断吗？&lt;/p&gt;

&lt;p&gt;现在有两个想法
想法一：搜索活动列表，然后使用活动 ids 和 user_id 搜索出当前用户的喜欢的 活动 id，然后组合数据。搜索我还会点，组合完全没有头绪啊。
想法二：搜索活动列表，然后在 model 层建立一个喜欢的字段 在 get 方法里面来做搜索，这个我觉得是比较简洁的，但是不知道这样好不好。也不太知道 怎么写。&lt;/p&gt;

&lt;p&gt;我试了下想法二 添加 attr_accessor，rails c 输出正常，但是 json 化的数据是没有该字段的。不知道为什么&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;attr_accessor&lt;/span&gt; &lt;span class="ss"&gt;:current_user_like_state&lt;/span&gt;

 &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;current_user_like_state&lt;/span&gt;
   &lt;span class="err"&gt;＃&lt;/span&gt;&lt;span class="n"&gt;这里来做sql&lt;/span&gt;  &lt;span class="n"&gt;喜欢的判断&lt;/span&gt;
 &lt;span class="k"&gt;end&lt;/span&gt;

 &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;current_user_like_state&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;like_state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;current_user_like_state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&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;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Online&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;

  &lt;span class="nb"&gt;attr_accessor&lt;/span&gt; &lt;span class="ss"&gt;:is_like&lt;/span&gt;




  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;is_like&lt;/span&gt;

    &lt;span class="n"&gt;sql&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"type = 1 AND state  = 1  AND object_id  =  &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;  AND user_id  =  &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;user_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;like&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="no"&gt;Like&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;sql&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;like&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
        &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;is_like&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;is_like&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="mi"&gt;1&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;def&lt;/span&gt; &lt;span class="nf"&gt;as_json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:only&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:user_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:description&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:cover_url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:current_user_like_state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:relation_url&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="ss"&gt;:methods&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:is_like&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;model 添加了两个方法 实现了该功能。做的不好，欢迎各位提供的新思路。感谢楼下各位的回答。谢谢你们。 &lt;/p&gt;</description>
      <author>zhzenghui</author>
      <pubDate>Wed, 19 Aug 2015 01:19:21 +0800</pubDate>
      <link>https://ruby-china.org/topics/26975</link>
      <guid>https://ruby-china.org/topics/26975</guid>
    </item>
    <item>
      <title> ruby-china 里面 user 对象里面包含了 admin，但是我却找不到定义在哪里。 我理解不了 admin role  是哪里来的，有知道的可以帮我解答下吗，谢谢你了</title>
      <description>&lt;p&gt;&lt;del&gt;ruby-china 里面 user 对象里面包含了 admin，但是我却找不到定义在哪里。我理解不了 admin 是哪里来的，有知道的可以帮我解答下吗，谢谢你了&lt;/del&gt;
 ruby-china 里面 user 对象里面包含了 admin，但是我却找不到定义在哪里。我理解不了 admin 是哪里来的，
 也没有保存用户角色的字段。李大大使用 cancan 来实现管理的，但是一个 has_role?(role) 就把我搞懵了。role 也是没有存在的字段。 &lt;/p&gt;

&lt;p&gt;有知道的可以帮我解答下吗，谢谢你了&lt;/p&gt;</description>
      <author>zhzenghui</author>
      <pubDate>Tue, 04 Nov 2014 00:31:27 +0800</pubDate>
      <link>https://ruby-china.org/topics/22447</link>
      <guid>https://ruby-china.org/topics/22447</guid>
    </item>
  </channel>
</rss>
