我有一个带有RESTful API的Rails服务器允许用“用户”创建“社区”。
要创建社区,请按以下方式发布JSON:
{
"community": {
"name": "community name"
}
}
到 / api / v1 / communities 。问题是“名称”必须是强制性的,所以如果在CommunitiesController中我做...
def community_params
params.require(:community).permit(:name)
end
...且名称缺失,我可以创建一个没有名字的社区。 p>
我想强制出现“名字”。我试过了
def community_params
params.require(:community)
params.require(community: [ :name ])
end
但我得到
ActionController :: ParameterMissing in Api :: V1 :: CommunitiesController #create param缺失或值为 空:{:community => [:name]}
请求
参数:
{“community”=> {“name”=>“社区名称”}}
如何强制存在非空的名称值?
非常感谢
答案 0 :(得分:2)
答案 1 :(得分:2)
我会在这里走出困境并假设您正在使用表单提交,除非名称字段存在,否则您不想添加记录。
给名字字段a" required"特征它应该在模型本身,community.rb中声明,例如:
validates :name, presence: true, length: { maximum: 30 }
在你的控制器中我建议像:
def community_params
params.require(:community).permit(:name)
end
祝你好运!