如何在索引页面上呈现多个Javascripts?

时间:2013-07-12 16:28:48

标签: javascript ruby-on-rails-3.2

如何从index.html.erb中的action1,action2和action3渲染javascript ??? 在索引操作中,我需要运行这些操作,在完成后,我需要通知它们是使用警报完成的......但是rails不会多次渲染,是否有解决方法?

控制器:

def index
  action1
  action2
  action3
end


def action1
  # do some process
  #send a javascript alert "action1 finished" (but display that alert in the index)
end

def action2
  # do some process
  #send a javascript alert "action2 finished" (but display that alert in the index)
end
def action3
  # do some process
  #send a javascript alert "action3 finished" (but display that alert in the index)
end

1 个答案:

答案 0 :(得分:0)

在控制器中不可能多次渲染,而你的结构听起来很吸引人,因为它干净整洁。

有两种解决方案取决于你的逻辑在action1,action2中的复杂程度......

简单方法:使用部分

# FoosController
def index
  @foos = Foo.scoped
end

# app/views/foos/index.html.erb
render partial: 'partial_1', locals: { local_1: @foos.local_1}
render partial: 'partial_2', locals: { local_2: @foos.local_2}

使用Cells gem

https://github.com/apotonick/cells

控制器代码是相同的。区别在于索引视图中的render_cell而不是部分。然后你可以在Cells mini controller

中添加复杂的逻辑

结论

如果控制器中的逻辑不那么复杂,我宁愿偏。对于像窗口小部件一样,单元格会更好。