<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>akayuki (akayuki)</title>
    <link>https://ruby-china.org/akayuki</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>多对多关联出现 Could not find the source association (s) 错误</title>
      <description>&lt;p&gt;在做一个学生作业系统的时候出现的问题，Student 通过 Enrollment 与 Course 多对多关联，先上代码&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;Course&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
    &lt;span class="n"&gt;has_many&lt;/span&gt;   &lt;span class="ss"&gt;:enrollments&lt;/span&gt;
    &lt;span class="n"&gt;has_many&lt;/span&gt;   &lt;span class="ss"&gt;:students&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:through&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:enrollments&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:source&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;:conditions&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;:type&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Student'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;
    &lt;span class="n"&gt;has_many&lt;/span&gt;   &lt;span class="ss"&gt;:enrollments&lt;/span&gt;
    &lt;span class="n"&gt;has_many&lt;/span&gt;   &lt;span class="ss"&gt;:courses&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:through&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:enrollments&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:source&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ss"&gt;:course&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Enrollment&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;
    &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:course&lt;/span&gt;
    &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:student&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 rails console 里执行 student.courses 的时候系统提示
&lt;code&gt;ActiveRecord::HasManyThroughSourceAssociationNotFoundError: Could not find the source association(s) :course in model Enrollment. Try 'has_many :courses, :through =&amp;gt; :enrollments, :source =&amp;gt; &amp;lt;name&amp;gt;'. Is it one of ?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Student 这个 model 是从 User 单表继承过来的，source 那里应该填 user 还是 student？两种都试了下但是一样会出错，能麻烦各位帮忙看一下吗？&lt;/p&gt;</description>
      <author>akayuki</author>
      <pubDate>Mon, 08 May 2017 14:54:27 +0800</pubDate>
      <link>https://ruby-china.org/topics/32948</link>
      <guid>https://ruby-china.org/topics/32948</guid>
    </item>
  </channel>
</rss>
