使用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进行响应.
如何获取响应json的ajax请求?
根据观察到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) 在下面的代码中,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) 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) 使用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)
我该怎么做?
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 ×2
ajax ×1
docker ×1
javascript ×1
json ×1
nokogiri ×1
perl ×1
postgresql ×1
rspec ×1
stub ×1