使用Rails 4.2.3。通常在一个动作中,我希望进行Ajax调用,而不是用JS来响应(使用JS更新某些字段),而不期望它响应HTML。例如:
format.html
def create
@post = Post.new(params[:post])
@post.save
end
还有必要吗?我通常只使用以下代码:
create.js
在视图中创建monitors =
[{name: 'service display name', svc: 'service name', host: '192.168.2.1'},
{name: 'service display name', svc: 'service name', host: '192.168.2.1'},
{name: 'service display name', svc: 'service name', host: '192.168.2.1'},
{name: 'service display name', svc: 'service name', host: '192.168.2.1'},
{name: 'service display name', svc: 'service name', host: '192.168.2.1'},
{name: 'service display name', svc: 'service name', host: '192.168.2.1'},
{name: 'service display name', svc: 'service name', host: '192.168.2.1'}]
SCHEDULER.every '5s', :first_in => 0 do |job|
statuses = Array.new
monitors.each do |monitor|
status = Service.status(monitor[:svc], monitor[:host]).current_state
if status == "running"
result = 1
else
result = 0
end
if result == 1
arrow = "icon-ok-sign"
color = "green"
else
arrow = "icon-warning-sign"
color = "red"
end
statuses.push({label: monitor[:name], value: result, arrow: arrow, color: color})
以呈现它。到目前为止没问题,但这是一个很好的做法吗?
答案 0 :(得分:0)
是的..我一直这样做..如果你只返回一个给定的类型,那么为什么还要使用响应块。它只是额外的锅炉板,在这个特定的实例中没有任何用途
记住爱因斯坦所说的:“让事情变得尽可能简单,但并不简单。” :)