标签: params

如何在Rails的map.resources()中重命名默认标识符param"id"?

我喜欢Rail的map.resources生成的所有默认路由.但是,有些情况下我想在我的路线中使用非数字标识符.例如,如果嵌套路由由用户及其文章组成,则可以按如下方式编写标准路由:

map.resources :users, :has_many => [:articles] # => e.g. '/users/:id/articles/:id'
Run Code Online (Sandbox Code Playgroud)

但是,有许多优点/原因不使用Rails生成的默认数字标识符.有没有办法将default:id params替换为我选择的另一个规范标识符,而不会为每个标准操作编写自定义路由?如果我想要一个以下格式的路线:

'/users/:login/articles/:id'
Run Code Online (Sandbox Code Playgroud)

这种路线是否可以使用map.resources实现?

resources routes ruby-on-rails params

12
推荐指数
2
解决办法
5942
查看次数

Rails:定义"params"的地方?

params在我的控制器中使用如下:

class ProductsController < ApplicationController
  def create
    @product = Product.new(params[:aircon])
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

params的属性ApplicationController?我猜不是,因为它没有@前缀.那么,究竟params是什么?我可以在任何自定义方法中使用它ProductsController吗?

ruby-on-rails params ruby-on-rails-3

11
推荐指数
2
解决办法
3041
查看次数

将ruby哈希转换为URL查询字符串...没有那些方括号

在Python中,我可以这样做:

>>> import urlparse, urllib
>>> q = urlparse.parse_qsl("a=b&a=c&d=e")
>>> urllib.urlencode(q)
'a=b&a=c&d=e'
Run Code Online (Sandbox Code Playgroud)

在Ruby [+ Rails]中,我无法弄清楚如何在没有"滚动我自己"的情况下做同样的事情,这看起来很奇怪.Rails方式对我不起作用 - 它为查询参数的名称添加方括号,另一端的服务器可能支持也可能不支持:

>> q = CGI.parse("a=b&a=c&d=e")
=> {"a"=>["b", "c"], "d"=>["e"]}
>> q.to_params
=> "a[]=b&a[]=c&d[]=e"
Run Code Online (Sandbox Code Playgroud)

我的用例很简单,我希望使用query-stringURL部分中某些值的值.依靠标准库和/或Rails似乎很自然,写下这样的东西:

uri = URI.parse("http://example.com/foo?a=b&a=c&d=e")
q = CGI.parse(uri.query)
q.delete("d")
q["a"] << "d"
uri.query = q.to_params # should be to_param or to_query instead?
puts Net::HTTP.get_response(uri)
Run Code Online (Sandbox Code Playgroud)

但只有在结果URI实际上是http://example.com/foo?a=b&a=c&a=d,而不是http://example.com/foo?a[]=b&a[]=c&a[]=d.有没有正确或更好的方法来做到这一点?

hash uri ruby-on-rails params

11
推荐指数
4
解决办法
2万
查看次数

C#:将集合转换为params []

这是我的代码的简化:

void Foo(params object[] args)
{
    Bar(string.Format("Some {0} text {1} here {2}", /* I want to send args */);
}
Run Code Online (Sandbox Code Playgroud)

string.Format要求发送的参数为params.有没有什么方法可以将args集合转换为string.Format方法的参数?

c# string-formatting params

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

Php Curl添加Params

我是一个新手,我试图让一个脚本在PHP中用Curl触发另一个脚本,但它似乎正在发送参数.

是否有单独的函数来追加参数?

<?php
$time = time();
$message = "hello world";


$urlmessage =  urlencode( $message );

$ch = curl_init("http://mysite.php?message=$urlmessage&time=$time");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
?>
Run Code Online (Sandbox Code Playgroud)

谁能指出我正确的方向?

php curl params

10
推荐指数
3
解决办法
4万
查看次数

Why can't I pass a various numbers of references to a function?

I want to do something like this:

double a, b, c, d, e;
ParseAndWrite("{1, 2, 3}", ref a, ref b, ref c);
ParseAndWrite("{4, 5}", ref d, ref e);

-> a = 1, b = 2, c = 3, d = 4, e = 5
Run Code Online (Sandbox Code Playgroud)

However, I can not write a function like this:

private void ParseAndWrite(string leInput, params ref double[] targets)
{
   (...)
}
Run Code Online (Sandbox Code Playgroud)

This doesn't work, for some reason one can not use ref and params at the same …

.net c# ref params

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

如何检查params [:some] [:field]是否为零?

我尝试了很多人的代码 - 如何测试rails中是否存在参数,但它不起作用():

     if ( params.has_key?([:start_date]) && params.has_key?([:end_date]) )
Run Code Online (Sandbox Code Playgroud)

我想,那是因为复杂的参数,如果我写这个:

       if ( params.has_key?([:report][:start_date]) && params.has_key?([:report][:end_date]) )
Run Code Online (Sandbox Code Playgroud)

给我错误

        can't convert Symbol into Integer
Run Code Online (Sandbox Code Playgroud)

这也行不通:

           if ( params[:report][:start_date] && params[:report][:end_date] )
Run Code Online (Sandbox Code Playgroud)

给我错误:

        undefined method `[]' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

它总是进入其他声明.

这是我的参数:

    report: 
    start_date: 01/08/2012
    end_date: 10/08/2012
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗 ?

null ruby-on-rails params

10
推荐指数
4
解决办法
2万
查看次数

Sinatra和问号

我需要用Sinatra制作一些看起来像的方法:

访问http //:本地主机:1234 /添加string_to_add

但是当我宣布它是这样的:

get "/add?:string_to_add" do
...
end
Run Code Online (Sandbox Code Playgroud)

它没有看到string_to_add参数.

我应该如何声明我的方法并使用此参数来使事情有效?

ruby get params sinatra

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

RSpec请求测试在POST JSON参数中合并数组中的哈希值

看起来像RSpec中的一个错误,但也许我错过了一些东西.

我有一个请求规范,我发布了一个包含哈希数组的JSON:

规格/请求/ dummy_request_spec.rb:

post "http://my.server.com/some/route", {
  format: :json,
  data: [
    {
      details: {
        param1: 1
      },
    },
    {
      details: {
        param2: 1
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

出于某种奇怪的原因,RSpec将哈希合并为一个元素,然后将它们发送到服务器.打印出控制器中收到的参数:

data: [
  {
    details: {
      param1: 1,
      param2: 2
    },
  },
]
Run Code Online (Sandbox Code Playgroud)

版本:rspec-2.13.0 rails-3.2.10

很奇怪!!

谢谢

json rspec ruby-on-rails request params

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

解析Params时出现错误

我正在开发一个基本的调查应用程序,用户可以在我的Android应用程序中进行调查,然后将选择发布回我的rails服务器.有一次,它向服务器公布了选择,但它最近在解析params并且不再创建用户选择时开始抛出错误.

我是HTTP的新手,并且一直在努力解决这个错误.任何帮助深表感谢!

如果我这样做卷曲请求:

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST -d {"question_id":"1","answer_id":"2"} http://ec2-54-186-132-102.us-west-2.compute.amazonaws.com:8080/questions/1/choices
Run Code Online (Sandbox Code Playgroud)

我最终在stacktrace中出现了这个错误:

Started POST "/questions/1/choices" for 172.31.10.156 at 2014-03-19 11:15:02 +0000
Error occurred while parsing request parameters.
Contents:



ActionDispatch::ParamsParser::ParseError (795: unexpected token at 'question_id:1'):
  actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:53:in `rescue in parse_formatted_parameters'
  actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:32:in `parse_formatted_parameters'
  actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:23:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/flash.rb:241:in `call'
  rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
  rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/cookies.rb:486:in `call'
  activerecord (4.0.0) lib/active_record/query_cache.rb:36:in `call'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
  activerecord (4.0.0) lib/active_record/migration.rb:369:in …
Run Code Online (Sandbox Code Playgroud)

json ruby-on-rails params

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

params ×10

ruby-on-rails ×6

c# ×2

json ×2

.net ×1

curl ×1

get ×1

hash ×1

null ×1

php ×1

ref ×1

request ×1

resources ×1

routes ×1

rspec ×1

ruby ×1

ruby-on-rails-3 ×1

sinatra ×1

string-formatting ×1

uri ×1