小编Rad*_*Tuk的帖子

如何在rails中的ruby中创建复杂的Json响应

我正在研究rails项目上的ruby,我想添加对Json的响应.

一个简单的方法是: -

def index
  @users = User.all
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @users }
    format.json  { render :json => @users.to_json }
  end
end
Run Code Online (Sandbox Code Playgroud)

但是这有一些问题: -

  1. 我不想在json响应中给出整个用户对象,如密码哈希和缓存计数器属性.Facebook,推特属性等
  2. 我想在json对象中添加更多细节(考虑stackoverflow模型),例如每个用户的最新问题,每个用户给出的最新答案.而不是通过回形针存储在数据库中的图像名称,我想传递图像的完整网址.

所以问题是如何在index.json.erb文件中代码json响应,就像我们在index.html.erb中那样.根据需要格式化您自己的json响应.

编辑

def index
  @users = User.all
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @users }
    format.json  { render :file => "index.json.erb", :content_type => 'application/json' }
  end
end
Run Code Online (Sandbox Code Playgroud)

index.json.erb文件: -

    <% @users.each do |user| %>
    {
      first_name: <%= user.first_name %>,
      last_name: <%= …
Run Code Online (Sandbox Code Playgroud)

ruby json ruby-on-rails ruby-on-rails-3

17
推荐指数
4
解决办法
3万
查看次数

标签 统计

json ×1

ruby ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1