小编ses*_*b27的帖子

去postgresql LIKE查询

我正在使用Go和PostgreSQL(pq驱动程序),我有以下查询

SELECT p.id, p.name, p.description, p.price, p.image, p.rate
FROM products AS p
WHERE LOWER(p.name) LIKE %$1% ORDER BY p.rate DESC
Run Code Online (Sandbox Code Playgroud)

如果我直接在PostgreSQL中执行此查询,它可以工作,但在Golang中说:

pq: syntax error at or near "%"
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我试过"\%"但没有用.谢谢.

这是完整的源代码

func FindByName(name *string) ([]*Product, error) {
    db, err := db.StablishConnection()
    if err != nil {
            log.Fatal(err)
            panic(err)
    }
    defer db.Close()

    query := `SELECT p.id, p.name, p.description, p.price, p.image, p.rate
        FROM products AS p
        WHERE LOWER(p.name) LIKE %$1% ORDER BY p.rate DESC`

    product_rows, err := db.Query(query, name)

    if err != nil …
Run Code Online (Sandbox Code Playgroud)

sql postgresql go

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

Rspec 测试 API 版本控制

我正在使用 rails 4.1.8 中的 web api,我正在做一些测试,但总是让我返回

Failure/Error: post '/v1/users', subdomain: 'api', user: @user.to_json, format: :json
 ActionController::UrlGenerationError:
   No route matches {:action=>"/v1/users", :controller=>"api/v1/users", :format=>:json, :subdomain=>"api", :user=>"JSON_OBJ"}
Run Code Online (Sandbox Code Playgroud)

但是如果我使用 Advance Rest Console 在浏览器中测试它,它就可以工作,我不知道我做错了什么

这是我的代码

路由文件

namespace :api, path: '/', constraints: {subdomain: 'api'}, defaults: { format: :json } do
  namespace :v1 do
    with_options except: [:edit, :new] do |except|
      except.resources :users do
        collection do
          post 'login'
          post 'showme'
        end
      end
      except.resources :products
      except.resources :locations
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

和我的控制器规格

module API
  module V1
    describe UsersController do
     before …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails rspec-rails ruby-on-rails-4

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