简单的问题,
在rails App中,做了一个脚手架
rails g scaffold Post title:string body:string
我想在前端javascript中添加简单条件
如果@posts存在,alert("exist")
否则,alert("no posts")
我可以添加此脚本inside views/posts/index.html.erb
<script>
$(function () {
if (<%=@posts.length%> > 2)
alert("exist");
else
alert("no posts");
});
</script>
<h1>Listing posts</h1>
<table>
<thead>
<tr>
<th>Title</th>
<th>Body</th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<% @posts.each do |post| %>
<tr>
<td><%= post.title %></td>
<td><%= post.body %></td>
<td><%= link_to 'Show', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, method: :delete, data: {confirm: 'Are you sure?'} %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<%= link_to 'New Post', new_post_path %>
问题是,
<script>
$(function () {
if (<%=@posts.length%> > 2)
alert("exist");
else
alert("no posts");
});
</script>
我想把它分成一个单独的js文件。
所以,我把这段代码放在
中assets/javascripts/posts.js
$(function () {
if (<%=@posts.length%> > 2)
alert("exist");
else
alert("no posts");
});
但是在这里,它不能使用&lt;%=%&gt;这个rails视图:(
有没有好的解决方案?
答案 0 :(得分:0)
您可以使用帖子计数向表中添加数据属性,也许只能在某些页面上侦听。类似的东西:
# view
body class=controller_name
table data-posts-count=@posts.length
# js
$("body.posts").load(function() {
count = $(this).data("posts-count")
if count > 2
alert("exist");
else
alert("no posts");
});