【发布时间】:2011-11-05 12:30:15
【问题描述】:
我最近读到在 JavaScript 中嵌入 ruby 并不是一个好主意。 然而,在诸如 David Heinemeier Hansson 的 Agile Web Development with Rails 等书籍中,这正是它所做的。 如果用 JS 嵌入 ruby 不是一个好主意,那么 这种情况的最佳做法是什么? 给定这样简单的东西:(jQuery + ruby)
posts_controller
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to(@post, :notice => 'Post was successfully created.') }
format.js #will use this response to process ajax
else
format.html { render :action => "new" }
end
end
end
create.js.erb
$tr = $('<tr>');
$td1 = $('<td>').text('<%= @post.title %>');
$td2 = $('<td>').text('<%= @post.content %>');
$tr.append($td1, $td2);
$('table tbody').append($tr);
应该如何重构以遵循不将 ruby 嵌入 JS 的“最佳实践”?(如果是这样的话)
我真的需要对此有所启发,并且可能要正确理解这些概念,因为我已经读过 Rails 3.1 将通过资产将 JS 与 Ruby 完全分开?(这是正确的吗?)
谢谢!
【问题讨论】:
-
您阅读了哪个版本的Agile Web Development with Rails?请记住,Rails 的每个新版本都有本书的相应版本(Rails 3 的第 4 版:pragprog.com/book/rails4/agile-web-development-with-rails)
-
我当然读过第四版。它仍然使用 rjs 模板,但没有 jQuery;取而代之的是 rails 3.0 的默认 JS 框架
标签: javascript jquery ruby-on-rails ruby