Как связать Хеш к параметрам URL?

Единственный способ, которым я знаю, это добавить сгенерированный файл, чтобы иметь зависимость от файла, за которым вы хотите его скрыть, - в файле proj.

Например:

 <ItemGroup>
    <Compile Include="test.cs" />
    <Compile Include="test.g.i.cs">
      <DependentUpon>test.cs</DependentUpon>
    </Compile>
  </ItemGroup>

Если вы удалили элемент DependentUpon, то этот файл отображается рядом с другим файлом, а не позади него ... как ваш генератор добавляет файлы? Можете ли вы рассказать нам об этом сценарии использования и о том, как бы вы хотели, чтобы он работал?

6
задан JP. 4 November 2009 в 14:45
поделиться

4 ответа

Вот более короткий и эффективный метод.

def parameterize(params)
  URI.escape(params.collect{|k,v| "#{k}=#{v}"}.join('&'))
end
21
ответ дан 8 December 2019 в 03:09
поделиться

Вы можете сделать это немного проще, используя collect :

def do_it(params)
  params.collect do |key,val|
    "#{CGI.escape(key.to_s)}=#{CGI.escape(val)}"
  end.join('&')
end

Я не знаю, насколько еще вы можете упростить это, чем это. Также обратите внимание, что CGI.escape преобразует пробелы в + , а не в % 20 . Если вам действительно нужен % 20 , используйте вместо него URI.escape (очевидно, вам придется потребовать 'uri' ).

0
ответ дан 8 December 2019 в 03:09
поделиться

Вам, вероятно, следует попробовать следовать

def to_query(key)
  "#{CGI.escape(key.to_s)}=#{CGI.escape(to_param.to_s)}"
end

, скопирован из рельсовая документация . Не забудьте прочитать комментарии над определением метода.

0
ответ дан 8 December 2019 в 03:09
поделиться

Я согласен, что это очень "нерубиновый" код. Хотя это не намного лучше, я думаю, что Requestify () может быть тем, что вам нужно:

http://www.koders.com/ruby/fid4B642EE4A494A744ACC920A1BE72CFE66D1D2B97.aspx?s=cgi#L291

0
ответ дан 8 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: