我正在尝试在Rails 4中创建一个应用程序。
我的个人资料表单允许用户制作个人资料。该档案的一部分是为了他们的资格。
协会是:
profile.rb
has_many :qualifications
accepts_nested_attributes_for :qualifications, reject_if: :all_blank, allow_destroy: true
资格证书rb
belongs_to :profile
我的个人资料视图文件夹然后包含部分显示该个人资料的资格。节目部分有:
<% Qualification.pending.order(year_earned: :asc).each do |qualification| %>
<div class="row">
<div class="col-md-12">
<div class="profilequalifications">
<%= qualification.current_study %>
</div>
</div>
</div>
<% end %>
我的资格模型的范围为:
scope :pending, -> { where(pending: true) }
问题是,每个配置文件都列出了所有资格。如何将此限制为仅列出其自身资格的每个配置文件。
我已尝试添加&#39;个人资料&#39; /&#39; @ profile&#39;在不同的地方对视图进行部分调查,但这些尝试只会产生错误。
是否有一个如何做到这一点的例子。我认为rails可能知道如何执行此操作,因为资格的视图表单嵌套在配置文件表单中。
采取措施
我将资格部分显示更改为:
<% profile.qualifications.pending.order(year_earned: :asc).each do |qualification| %>
<div class="row">
<div class="col-md-12">
<div class="profilequalifications">
<%= qualification.current_study %>
</div>
</div>
</div>
我将个人资料显示页面更改为:
<%= render :partial => 'profiles/qualifications', profile: @profile %>
我收到此错误:
未定义的局部变量或方法`profile&#39;对于#&lt;#:0x007f97ba143030&gt;
答案 0 :(得分:0)
我认为你需要将你的个人资料传递给部分,所以:
<%= render 'your_partial', profile: @profile %>
然后你可以在局部使用它,例如
<% profile.qualifications.each do |q| %>
<%= q.name %>
<% end %>