【发布时间】:2016-06-30 16:49:56
【问题描述】:
我有一个如下的寻呼机,它返回错误“未定义的局部变量或方法 `page'for...:
<nav>
<ul class="pager">
<li class="previous <%= page == 0 ? 'display' : 'hidden' %>">
<%= link_to_if page > 0, "← Previous".html.safe,
users_path(keywords: keywords, page: page - 1) %>
</li>
<li class="next">
<<%= link_to "Next →".html.safe,
users_path(keywords: keywords, page: page + 1) %>
</li>
</ul>
</nav>
使用<% render "pager", locals: { keywords: @keywords, page: @page } %>调用
关联的控制器是
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
我做错了什么?
【问题讨论】:
-
你可以尝试使用
<% render partial: "pager", locals: { keywords: @keywords, page: @page } %> -
添加部分:没有更多错误,但有什么区别?以为是一样的。
-
其实不一样。您可以在此处查看源代码:render method。所以在你的情况下,如果你不使用
partial,你也不需要使用locals。我可以将此添加为已接受的答案吗? -
当然可以
标签: ruby-on-rails-4