How could I render to a string a JSON representation of a JBuilder view?

后端 未结 8 1540
抹茶落季
抹茶落季 2020-12-29 05:18

I\'m using JBuilder as to return some JSON. I have a index.json.jbuilder that generates the data, and I need to render it to a string. However, I\'m not sure ho

8条回答
  •  清歌不尽
    2020-12-29 05:30

    If the view users.json.jbuilder is at the default path relative to the controller and it cannot find the template, it may be due to a format discrepancy, as it may be trying to look for the html format file. There are two ways to fix this:

    1. Have the client GET /users/index.json

      or

    2. Specify the formats option when calling render_to_string (also applies to render):


    #controllers/users_controller.rb
    def index
      @users = User.all
      @users_json = render_to_string( formats: 'json' ) # Yes formats is plural
    end
    

    This has been verified in Rails 4.1.

提交回复
热议问题