小编Cam*_*Cam的帖子

使用HTTP put时,Rails会话为空

我有一种情况,一个特定的链接导致一个空的会话哈希.这不好,因为我需要使用session_id来查找模型.

导致问题的链接是:

<div id="marker_images">
  <% @marker_image_urls.each do |image_url| %>
    <%= link_to( image_url, 
                 location_type_path(@location_type.id, 
                 :location_type => {:preset_marker_url => image_url}), 
                 :method => :put,
                 :remote => true ) %>
  <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

以及从会话ID中找到模型的代码(使用before_filter调用):

def get_organisation
  @organisation = Organisation.find_by_session_id(session[:session_id])
end
Run Code Online (Sandbox Code Playgroud)

在调试器模式下,session=={}

如果我将link_to更改为HTTP"get"而不是"put",则会发送会话.但是,此请求不适合'get',因为它正在修改数据.

为什么"得到"包括会话,但"放"不是?

ajax session ruby-on-rails ruby-on-rails-3

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

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
查看次数

使用jQuery在textarea中的Maxlength

使用脚本http://viralpatel.net/blogs/2008/12/set-maxlength-of-textarea-input-using-jquery-javascript.html我试图将textarea的输入限制为1000个字符.原型也包含在页面中.

它在chrome中工作正常,但在firefox中给出以下错误并且输入不受限制:

$("textarea[maxlength]") is null
Run Code Online (Sandbox Code Playgroud)

我完全难过了.任何帮助,将不胜感激.代码片段如下.

textarea:

<%= text_area 'project', 'description', 'cols' => 60, 'rows' => 8, 'maxlength' => 1000 %>
Run Code Online (Sandbox Code Playgroud)

javascript:

<%= javascript_include_tag "jquery", "jquery.maxlength" -%>
<script type="text/javascript">
  jQuery.noConflict();
  jQuery(document).ready(function($) {
    $().maxlength();
  })
</script>
Run Code Online (Sandbox Code Playgroud)

jquery.maxlength.js:

jQuery.fn.maxlength = function(){
    $('textarea[maxlength]').keypress(function(event){
        var key = event.which;
        //all keys including return.
        if(key >= 33 || key == 13) {
            var maxLength = $(this).attr('maxlength');
            var length = this.value.length;
            if(length >= maxLength) {
                event.preventDefault();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery ruby-on-rails prototypejs

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

rbenv安装ruby校验和不匹配osx

我已经成功地在山狮上安装了rbenv和ruby.跑步rbenv install 1.9.3-p392以:

checksum mismatch: ruby-1.9.3-p392.tar.gz (file is corrupt) expected f689a7b61379f83cbbed3c7077d83859, got 1cfc2ff433dbe80f8ff1a9dba2fd5636

它正在下载的文件似乎很好,如果我使用curl手动下载文件,我会得到相同的错误校验和.

以前有人遇到过这个吗?他们是如何解决的?

ruby macos curl rbenv

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