【问题标题】:How to make links for index and show actions work in partial views如何使索引链接和显示操作在部分视图中工作
【发布时间】:2015-12-14 19:50:12
【问题描述】:

我正在使用部分从我所有页面的布局文件夹中呈现导航栏,并且在导航栏中我有指向操作的链接,例如来自 GradesController 的索引和显示。我了解,为了使链接正常工作,我必须在控制器中的该页面操作中调用它们:

def home
  @grades = Grade.all 
end

但是,由于这些链接存在于没有相应控制器的 局部视图 中,我怎样才能使这些链接正常工作而不会出现 NoMethodError?

布局/_navbar.html.erb

<div class="main_nav_color">
  <div class="wrapper">
    <header id="main_header" class="cf">
      <a href="#" id="logo">arabecademy</a>
        <nav>
          <ul>
            <li>
              <%= link_to "#" do %>
                Grade<span class="glyphicon glyphicon-chevron-down"></span>
              <% end %>
              <ul>
               <% @grades.each do |grade| %>
                  <li><%= link_to "Grade" + grade.grade_number, grade_courses_path(grade, @course) %></li>
                <% end %>
              </ul>
            </li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
            <% if student_signed_in? %>
            <li><%= link_to "Log Out", destroy_student_session_path, method: :delete %></li>
            <li><%= link_to "Accout Settings", edit_student_registration_path %></li>
            <% else %>
            <li><%= link_to "Log in", new_student_session_path %></li>
            <li><%= link_to "Sign Up", new_student_registration_path, :class => "button_sm button_orange" %></li>
            <% end %>
          </ul>
        </nav>
    </header>
  </div>
</div>

【问题讨论】:

  • 不清楚你在问什么。你能添加部分等的代码吗?
  • 对不起,我刚刚添加了它
  • 你在设置@course吗?
  • @DickieBoy 你是什么意思?

标签: ruby-on-rails partial-views


【解决方案1】:

要始终设置@grades,您可以像这样在ApplicationController 中添加before_filter

class ApplicationController
  before_action :load_grades

  def load_grades
    @grades = Grade.all
  end
end

这将确保每个单独的控制器操作都设置了@grades,以及操作本身所做的任何事情。您的部分应该能够在您现在显示的任何位置拾取@grades

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多