首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将符号转换为整数

问无法将符号转换为整数
EN

Stack Overflow用户
提问于 2011-02-25 23:38:29
回答 1查看 13K关注 0票数 2

我创建了一个简单的表排序器:

代码语言:javascript
复制
ProductsController:   
 helper_method :sort_column, :sort_direction
  # GET /products
  # GET /products.xml
  def index
    @products = Product.order(sort_column+ " "+sort_direction)

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @products }
    end
  end

Application_helper

代码语言:javascript
复制
module ApplicationHelper

  def sortable(column, title = nil )
    title ||= column.titleize
    direction = column == sort_column && sort_direction[:direction] == "asc" ? "desc" : "asc"
    link_to title, {:sort => column, :direction => direction}
  end
end

和视图:

代码语言:javascript
复制
 <tr>
    <th><%= sortable "name"%></th>
    <th><%= sortable "price"%></th>
    <th><%= sortable "released" %></th>
  </tr>

在我尝试打开/products页面后,我得到了这个错误(Rails v3.0.3):

代码语言:javascript
复制
   can't convert Symbol into Integer
Extracted source (around line #5):

2: 
3: <table>
4:   <tr>
5:     <th><%= sortable "name"%></th>
6:     <th><%= sortable "price"%></th>
7:     <th><%= sortable "released" %></th>
8:   </tr>

和排序方法:

代码语言:javascript
复制
 def sort_column
    Product.column_names.include?(params[:sort]) ? params[:sort] : "name"
  end

  def sort_direction
    %w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
  end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-25 23:50:48

代码语言:javascript
复制
direction = column == sort_column && sort_direction[:direction] == "asc" ? "desc" : "asc"

也许应该改成这样。sort_direction看起来像是一个字符串,但您将其视为散列。

代码语言:javascript
复制
direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5119192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档