小编Nic*_*ick的帖子

routes.rb - 不支持控制器名称

我有一个特殊的问题.这是routes.rb的一部分,它涉及到:

resources :players
match '/players/:userid', :to => 'Players#show'
Run Code Online (Sandbox Code Playgroud)

当您访问localhost:3000/players/1234时,会出现此错误:

"播放器"不是受支持的控制器名称.这可能导致潜在的路由问题.

控制器中的相关代码:

def show
  begin
    if Player.find_by(:uid => :userid) then
      @playerattributes = Player.find_by(:uid => :userid) 
      if player[:profile_complete] == true then
        @playerinfo = {
            :age => player[:age],
            :team => player[:team],
            :position => player[:position]
        }
      else
        @playerinfo = 0 
      end
    end
    player = Player.find_by(:uid => :userid)[:info]
rescue ActiveRecord::RecordNotFound
    redirect_to root_url        
    end
end
Run Code Online (Sandbox Code Playgroud)

问题并没有就此结束.当页面加载时(它有时随机工作),这一行起作用: if Player.find_by(:uid => :userid) then 使用PostgreSQL,显示查询.它不是使用URL中的:userid值(即localhost:3000/players/1234将是1234),而只是输入文本"userid".

我错过了一些明显的东西吗

真的很感激任何帮助.

ruby postgresql activerecord ruby-on-rails

6
推荐指数
1
解决办法
7939
查看次数

在 Go 中从派生类型调用方法

我有两个文件,generic_handler.go,本质上是这样的:

type Handler struct{
    fields map[string]interface{}
}

func (handler *Handler) addField(key string, value interface{}){ some code }
Run Code Online (Sandbox Code Playgroud)

和 stat_handler.go:

type StatHandler Handler
Run Code Online (Sandbox Code Playgroud)

当我尝试调用(从 stat_handler.go 文件中)这样的方法时,我收到一个错误:

//inside some function
stathandler.addField("some field", "some value")
Run Code Online (Sandbox Code Playgroud)

它出错了type StatHandler has no field or method addField。即使我addField通过 make导出也是一样的AddField。这两个文件都位于同一个包中。

有什么我想念的吗?

types go

1
推荐指数
1
解决办法
1062
查看次数

标签 统计

activerecord ×1

go ×1

postgresql ×1

ruby ×1

ruby-on-rails ×1

types ×1