必须只在以下情况下才能指定respond_to:html:js是预期的

时间:2015-08-24 16:50:33

标签: ruby-on-rails

使用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}) 以呈现它。到目前为止没问题,但这是一个很好的做法吗?

1 个答案:

答案 0 :(得分:0)

是的..我一直这样做..如果你只返回一个给定的类型,那么为什么还要使用响应块。它只是额外的锅炉板,在这个特定的实例中没有任何用途

记住爱因斯坦所说的:“让事情变得尽可能简单,但并不简单。” :)