我目前正在尝试重构一些遗留代码。它目前是这样的:
控制器
def create
# do stuff
respond_to do |format|
format.html { do stuff }
format.js { render partial: 'stage_two', locals: { some instance variables } }
end
end
然后在views/controller_name/_stage_two.js.erb
里面:
$('.some_element').children().fadeOut( function() {
$('.some_element').children().remove();
$('.some_element').html("<%=j render partial: 'form', locals: { stuff } %>");
$('.some_element .stage_two').fadeIn();
});
所以基本上控制器动作本质上是渲染javascript。而那个特定的 javascript 只是从页面中删除一个元素,更改内容,然后将其淡入。有没有更好的方法来做到这一点?我知道通常 javascript 位于app/assets/javascripts
.