如何从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
答案 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}
https://github.com/apotonick/cells
控制器代码是相同的。区别在于索引视图中的render_cell
而不是部分。然后你可以在Cells mini controller
如果控制器中的逻辑不那么复杂,我宁愿偏。对于像窗口小部件一样,单元格会更好。