将Rails控制器中的JSON渲染为html脚本视图partial

时间:2015-03-20 16:05:46

标签: ruby-on-rails

在我看来,我想创建一个与我的ruby对象current_user

匹配的javascript对象

似乎是一个很好的解决方案,而不是向/users/me发出额外请求。

2 个答案:

答案 0 :(得分:5)

这花了我更长的时间:

<script>
  window.current_user = <%= raw(current_user.to_json) %>;
</script>

答案 1 :(得分:0)

从控制器发送json以查看

def show_user_categories
     @categories= current_users.categories.map do |c|
      { :id => c.id,:name => c.title}
    end   
    respond_to do |format|
      format.html
      format.json { render :json => @categories}
    end
 end 

在视图中获取json

   <%= javascript_tag do%>
     window.categories= <%=raw @categories.to_json %>;

    <%end%> 

然后在js脚本中使用

var markers=[];
 $.each(categories, function(index) {
     //creating js array which can be used in js script
     //using the id/title passed from controller code                 
     markers.push([categories[index]['id'],categories[index]['title']]);

 });