我正在尝试使用jQuery函数将部分放入我的代码中。 jQuery非常简单,但我如何输入Rails代码,所以我不必从头开始编写html?
这是我到目前为止所拥有的:
function addCommentBoxToID(myID)
{
$('#post' + myID + ' .postcontent tbody').append('I want to put rails code here');
}
谢谢!
答案 0 :(得分:5)
那不是这样做的方法。您不能在代码中包含部分真正的jQuery。
jQuery是客户端,Ruby on Rails代码在服务器上执行。你不能执行Rails代码真正的jQuery。
最接近您想要的内容包括rails生成的html内容将使用一些ajax来调用rails app并发出命令来吐出一段HTML。在railscasts.com上查看rails和ajax以获得基本想法。
答案 1 :(得分:2)
应用程序/视图/帖/ show.html.erb
<%= form_for([@article, @article.comments.build], remote: true) do |f| %>
.... (the fields for the comment)
<% end %>
应用程序/控制器/ comments_controller.rb
def create
@article = Article.find params[:article_id]
@comment = @article.comments.build(params[:comment])
if @comment.save
respond_to do |format|
(other formats)
format.js
end
else
render 'articles/show'
end
end
应用程序/视图/评论/ create.js.erb
$('#post' + myID + ' .postcontent tbody').append('<%=j render @comment %>')
或者如果你想放置变量的内容:
$('#post' + myID + ' .postcontent tbody').append('<%=j @comment.content %>')
应用程序/视图/评论/ _comment.html.erb
(your partial)
不要忘记逃避javascript:
<%=j ... %> or (a bit longer) <%=escape_javascript ...%>
否则它将与引号/双引号等完全混乱。
答案 2 :(得分:2)
通常,JavaScript在客户端工作,但您的应用程序也可能为每个客户端绘制javaScript函数。在这种情况下,您可以在.erb文件中使用<%=
和标记%>
:
<script type="text/javascript">
$(function(){
new AClass.function({
text: <%= Date.today %>
});
});
</script>