小编jos*_*eir的帖子

Rails Ajax JS与JSON混淆

使用Rails 4,我想使用Ajax表单post:remote => true,我希望能够以json格式返回响应,以便在出现故障时可以使用任何错误消息.

表单帖子正在使我的控制器操作正常.控制器动作:

def create
    @comment_hash = comment_params
    @obj = @comment_hash[:commentable_type].constantize.find(@comment_hash[:commentable_id])
    @comment = Comment.build_from(@obj, current_user.id, @comment_hash[:body])
    respond_to do |format|
        if @comment.save
            if @comment_hash[:reply_to].to_i > 0
                @parentcomment = Comment.find(@comment_hash[:reply_to].to_i)
                @comment.move_to_child_of(@parentcomment)
            end

            format.js { render :template => "comments/create.js.erb", :status => :created }
        else
            format.js { render :template => "comments/create.js.erb", :status => :unprocessable_entity }
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

无论成功或错误如何,控制器操作都将呈现create.js.erb.但是,如果我包含format.json,它将永远不会使用json响应.我认为这是因为Ajax remote:true请求将始终使用js进行响应.

  1. 如何获取响应json的ajax请求?

  2. 根据观察到rails ajax请求以js格式响应,我对这里提供的示例更加困惑:http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html其中成功的保存响应提供了js格式但错误响应没有提供任何js格式.

我认为这对于ajaxError响应会出错,因为js格式不可用?:

def create
  @user = User.new(params[:user])

  respond_to do |format|
    if @user.save
      format.html { redirect_to @user, …
Run Code Online (Sandbox Code Playgroud)

javascript ajax json ruby-on-rails

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

Perl的"最后"做了什么?

在下面的代码中,lastwhile循环中有什么作用?如果$matrix[$i][$j]{pointer}变量等于"none"它调用,我得到它,last但它做了什么?

另外为什么$ matrix变量包括使用花括号的得分和指针?{score},我把它看作数组中的第三维,但这是别的吗?无法在谷歌上找到任何关于此的内容.谢谢!

my @matrix;
$matrix[0][0]{score}   = 0;
$matrix[0][0]{pointer} = "none";
#populate $matrix with more stuff

while (1) {
  last if $matrix[$i][$j]{pointer} eq "none"; #<-what is this "last" doing?
  #do some more stuff here
}
Run Code Online (Sandbox Code Playgroud)

perl

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

Docker PostgreSQL 暴露密码?

Docker Postgres 示例库docker run提供了通过或使用文件启动 postgreSQL 实例的示例docker-compose,如下所示。

docker run调用公开了命令中的密码,并且该docker-compose文件公开了可以在 Github 上查看的密码。我学会了永远不要以这种方式公开凭据,并且始终从环境中检索。有没有一种正确的方法来 dockerize postgreSQL 并考虑到安全性?或者这是否安全并且我的理解不正确?

docker run例子:

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
Run Code Online (Sandbox Code Playgroud)

docker-compose例子:

version: '3.1' 
services:
    db:
        image: postgres
        restart: always
        environment:
            POSTGRES_PASSWORD: example
Run Code Online (Sandbox Code Playgroud)

postgresql docker

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

RSpec Stub在循环中使用相同的方法

使用RSpec,我想:

expect(Thing).to receive(:status)
                .with(for: 'something')
                .and_return('down')
Run Code Online (Sandbox Code Playgroud)

在第一次迭代中,相同的存根应该在第二次迭代时返回不同的返回:

expect(Thing).to receive(:status)
                .with(for: 'something')
                .and_return('up')
Run Code Online (Sandbox Code Playgroud)

在测试以下代码片段时:

2.times do |i|
  break if Thing.status(for: 'something') == 'up'
  sleep 2
  raise MyError if i > 0
end
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

ruby rspec stub

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

使用 Nokogiri,如何将 html 转换为尊重块元素的文本(确保它们导致换行)

Nokogiri#content方法不会将块元素转换为段落,例如:

fragment = 'hell<span>o</span><p>world<p>I am Josh</p></p>'
Nokogiri::HTML(fragment).content
=> "helloworldI am Josh"
Run Code Online (Sandbox Code Playgroud)

我希望输出:

=> "hello\n\nworld\n\nI am Josh"
Run Code Online (Sandbox Code Playgroud)

如何将 html 转换为文本,确保块元素导致换行,并且内联元素被替换为没有空格。

ruby nokogiri

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

标签 统计

ruby ×2

ajax ×1

docker ×1

javascript ×1

json ×1

nokogiri ×1

perl ×1

postgresql ×1

rspec ×1

ruby-on-rails ×1

stub ×1