Bil*_*ill 8 json ruby-on-rails
我目前切换ActiveModelSeralizer到JBuilder渲染jsons.我想知道,ActiveModelSeralizer我可以这样做:
text_content = UserSeralizer.new(user, :root => false)
Run Code Online (Sandbox Code Playgroud)
并在变量中接收json字符串text_content.既然我正在转离ActiveModelSeralizer,那么无论如何都要使用JBuilder进行上述操作吗?
我有一个部分内部的视图app/view/api/v1/users/_user.json.jbuilder是否仍然将该部分变为变量?
谢谢
Tom*_*hen 19
是的你可以.只需使用Jbuilder.encode方法:
# somewhere in User model
def display_to_json
Jbuilder.encode do |json|
json.name name
json.location display_location
json.description description
json.work_experience work_experience
end
end
Run Code Online (Sandbox Code Playgroud)
并使用它:
<!-- somewhere in view, just for example -->
<div ng-init="user = <%= @user.display_to_json %>"></div>
Run Code Online (Sandbox Code Playgroud)
注意:类名Jbuilder不是JBuilder.
json = ActionController::Base.new.view_context.render(partial: "api/v1/users/user", locals: {user: @user})
Run Code Online (Sandbox Code Playgroud)
“我在 app/view/api/v1/users/_user.json.jbuilder 中有一个视图部分,有没有办法将该部分渲染到变量中?”
怎么样
json.partial! 'api/v1/users', users: @users.all
Run Code Online (Sandbox Code Playgroud)
这将渲染部分内容并创建一个新变量 users,其内容为 @users.all
| 归档时间: |
|
| 查看次数: |
2719 次 |
| 最近记录: |