首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rails中将数据转换为json格式

在rails中将数据转换为json格式
EN

Stack Overflow用户
提问于 2011-12-28 17:42:22
回答 2查看 2.3K关注 0票数 1

我的需求是在我的rails应用程序中实现自动完成功能。我需要将下面控制器代码中的@testers转换为json格式。

代码语言:javascript
复制
def new
  @release = Release.new
  @ic_ids = params[:ic_ids] ? params[:ic_ids] : []
  @testers = User.find_by_sql("select * from users where id in(select user_id from user_role_assignments where role_id in (select id from roles where name like 'Tester')) order by name").paginate(:page=>params[:page],:per_page=>30)   
  respond_to do |format|
    format.html # new.html.erb
    format.xml  { render :xml => @release }
  end
end

在我的视图代码中,我尝试了以下内容:

代码语言:javascript
复制
%td.grid.full_panels
    -table_panel "Assign Testers" do
      %table
        %th Name
        -puts "testers=#{@testers}"
        = form.label :tester_tokens, "Testers" 
        = form.text_field :tester_tokens,:class => 'autocomplete'
 :javascript
  data = #{testers.to_json} 

我对数据的定义不明确。

请帮帮我。

谢谢,拉米亚。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-28 17:50:11

要创建json源代码,可以将format.json添加到respond_to循环中,如下所示:

代码语言:javascript
复制
def index
     @objects=Model.where("name LIKE ?", "%params[:q]%") || Model.all
     respond_to do |format|
          format.html # index.html.erb
          format.json { render :json => @objects.map(&:attributes) }
     end
end

如果您不想提取所有数据,可以使用onlyexcept选项。你应该能够在大多数自动补全插件中使用它!

通过添加q数据,您将能够根据给定的模式划分结果。

票数 3
EN

Stack Overflow用户

发布于 2011-12-28 17:52:00

为什么是data =?据我所知,这是无效的javascript。

正确的HAML语法应为:

代码语言:javascript
复制
:javascript
  #{testers.to_json}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8654202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档