我可以为 javascript 块创建 ViewHelper 吗?
Can I create a ViewHelper for a javascript-block?
我正在清理 Rails-app 的代码。我正在使用 Raty-gem
作为我的评级系统。为了呈现 #average_rating
,我在特定视图中使用了脚本块(在某些教程中选择了它)。但由于我在超过 6 个不同的视图中使用 #average_rating
,我希望我可以更有效地做到这一点。我已经尝试为其使用 HelperMethod,但我猜它不接受 'javascript'.
脚本块:
<script>
$('#average_rating').raty({
path: '',
readOnly: true,
score: <%= @project.average_rating %>
});
</script>
在 Rails 中最简洁的方法是什么?
是的,使用 rails 提供的 content_for
辅助方法定义 JavaScript 块有更简洁的方法。您可以在命名的 content_for
块中定义代码片段,并且可以在您的视图中的任何位置使用。
例如
<% content_for :rating_code do %>
$('#average_rating').raty({
path: '',
readOnly: true,
score: <%= @project.average_rating %>
});
<% end %>
在此处查看文档:http://apidock.com/rails/ActionView/Helpers/CaptureHelper/content_for
如果你有很多数据要传递给JavaScript并且你想将你的js代码保存在js文件中,你可以使用the Gon gem
我正在清理 Rails-app 的代码。我正在使用 Raty-gem
作为我的评级系统。为了呈现 #average_rating
,我在特定视图中使用了脚本块(在某些教程中选择了它)。但由于我在超过 6 个不同的视图中使用 #average_rating
,我希望我可以更有效地做到这一点。我已经尝试为其使用 HelperMethod,但我猜它不接受 'javascript'.
脚本块:
<script>
$('#average_rating').raty({
path: '',
readOnly: true,
score: <%= @project.average_rating %>
});
</script>
在 Rails 中最简洁的方法是什么?
是的,使用 rails 提供的 content_for
辅助方法定义 JavaScript 块有更简洁的方法。您可以在命名的 content_for
块中定义代码片段,并且可以在您的视图中的任何位置使用。
例如
<% content_for :rating_code do %>
$('#average_rating').raty({
path: '',
readOnly: true,
score: <%= @project.average_rating %>
});
<% end %>
在此处查看文档:http://apidock.com/rails/ActionView/Helpers/CaptureHelper/content_for
如果你有很多数据要传递给JavaScript并且你想将你的js代码保存在js文件中,你可以使用the Gon gem