ruby-on-rails - 如何将模型属性与帖子中的参数匹配
问题描述
我是 Rails 新手,所以我不确定这些术语,但这是类比。我想为 Persons 创建一条新记录,但 post 中的参数与模型不同。提前致谢。
人物模型:
:name, :email
人事控制人:
def person_params
params.require(:person).permit(:f_name, :person_email)
end
解决方案
要么更改您接受的参数,要么更改您发送的参数。
第二个最简单:发送与模型相同的参数。这将与表单助手一起使用,让您只需将参数输入模型。
如果要接受与模型不同的参数,则需要对其进行转换。有很多方法可以做到这一点。在 person_params 中执行此操作可确保一致性。
def PersonsController
...
private def person_params
# Require a person hash.
pp = params.require(:person)
# Transform them to match the model.
# Don't overwrite if the model fields were sent.
pp[:name] ||= pp[:f_name)
pp[:email] ||= pp[:person_email]
# Add the permit using model fields.
# f_name and person_email will be filtered out.
pp.permit(:name, :email)
end
end
推荐阅读
- python - Discord.py bot - TypeError:“模块”对象不可调用
- multithreading - 在 Rust 中并行写入多个文件
- c++ - 在调用“项目”之后设置 CMake 项目版本
- android - 形状的Android自定义属性
- django - Django API 调用需要太多时间来响应
- facebook - 从 ffmpeg 流式传输到 Facebook Live 被终止
- javascript - 如何制作一个 discord.js 随机数生成器来生成用户输入
- c# - Microsoft.WindowsAzure.Storage 是否符合 FIPS 140-2
- python - 在设置文件上将 DEBUG 设置为 true 时出现错误
- c# - 如何在 LINQ SQL C# 中返回动态周数?