如何按属性筛选展示用户?Jbuilder无输出及视图定位问题
解决Jbuilder无输出问题(仅返回用户邮箱)
核心问题:Jbuilder视图路径不匹配
你的路由和控制器属于api/v1命名空间,Jbuilder视图必须放在对应命名空间的目录下,否则Rails找不到视图文件,导致无输出。
步骤1:创建正确路径的Jbuilder视图文件
在项目中创建以下路径和文件:app/views/api/v1/users/all.json.jbuilder
步骤2:编写Jbuilder代码(仅返回邮箱)
在上述文件中写入以下代码:
json.array! @users do |user| json.email user.email end
步骤3:验证配置
- 控制器代码无需修改,
@users = User.all已经正确获取用户数据 - 路由设置了
defaults: { format: :json},请求会自动匹配.json.jbuilder视图
额外排查点
如果仍无输出,检查以下内容:
- 确认视图文件名拼写完全正确(比如不要写成
all.jbuilder或user/all.json.jbuilder) - 验证
@users是否有数据:可在控制器all动作中添加puts @users.count,查看控制台输出 - 确认Gemfile中包含
jbuilder,并执行过bundle install
内容的提问来源于stack exchange,提问作者mtsyumm
相关产品推荐
相关产品推荐

