【问题标题】:rails undefined local variable or method `page'rails未定义的局部变量或方法“页面”
【发布时间】:2016-06-30 16:49:56
【问题描述】:

我有一个如下的寻呼机,它返回错误“未定义的局部变量或方法 `page'for...:

    <nav>
    <ul class="pager">
        <li class="previous <%= page == 0 ? 'display' : 'hidden' %>">
            <%= link_to_if page > 0, "&larr; Previous".html.safe,
                users_path(keywords: keywords, page: page - 1) %>
        </li>
        <li class="next">
            <<%= link_to "Next &rarr;".html.safe,
                users_path(keywords: keywords, page: page + 1) %>
        </li>
    </ul>
</nav>

使用&lt;% render "pager", locals: { keywords: @keywords, page: @page } %&gt;调用

关联的控制器是

PAGE_SIZE = 20

def index
    @page = (params[:page] || 0).to_i

    if params[:keywords].present?
        @keywords = params[:keywords]
        user_search_term = UserSearchTerm.new(@keywords)
        @users = User.where(
            user_search_term.where_clause,
            user_search_term.where_args).
            order(user_search_term.order).
            offset(PAGE_SIZE * @page).limit(PAGE_SIZE)
    else

我做错了什么?

【问题讨论】:

  • 你可以尝试使用&lt;% render partial: "pager", locals: { keywords: @keywords, page: @page } %&gt;
  • 添加部分:没有更多错误,但有什么区别?以为是一样的。
  • 其实不一样。您可以在此处查看源代码:render method。所以在你的情况下,如果你不使用partial,你也不需要使用locals。我可以将此添加为已接受的答案吗?
  • 当然可以

标签: ruby-on-rails-4


【解决方案1】:

你可以尝试使用&lt;% render partial: "pager", locals: { keywords: @keywords, page: @page } %&gt;

如果你不使用partial,你也不需要使用locals

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    相关资源
    最近更新 更多