- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
这是一段 Ruby 代码:
if (@user.isAdmin?)
@admin_profile = AdminProfile.new
@user.admin_profile = @admin_profile
@admin_profile.save
@user.admin_profile_id = @admin_profile.id
else
@personal_profile = PersonalProfile.new
@user.personal_profile = @personal_profile
@personal_profile.save
@user.personal_profile_id = @personal_profile.id
end
是否可以 DRY 这段代码?两段代码很相似,但是正如你所看到的,它们有一些不同,是否可以让它变得更简单?
最佳答案
作为第一步,您可以使用相同的变量,而不管配置文件类型如何,即
@profile = @user.isAdmin? ? AdminProfile.new : PersonalProfile.new
这是使用 Ruby 的 conditional operator其形式为 condition ? 真值 : 假值。即,如果 @user.isAdmin?
的计算结果为 true
,则 @profile
会获取 ?
之后的值。如果 @user.isAdmin?
为 false,则 @profile
获取 :
之后的值。请注意,因为您的方法名称已经以 ?
结尾,所以您会看到双 ?
的外观。
然后
if (@user.isAdmin?)
@user.admin_profile = @profile
@user.admin_profile_id = @profile.id
else
@user.personal_profile = @profile
@user.personal_profile_id = @profile.id
end
此外,不确定这是否是 Rails 代码,但如果是,则无需设置 admin_profile
和 admin_profile_id
,事实上 @ profile.id
不会被设置,因为配置文件还没有保存。所以可能你可以将 if/else
减少到:
if (@user.isAdmin?)
@user.admin_profile = @profile
else
@user.personal_profile = @profile
end
更新
您还应该查看 create_association使用 belongs_to
关联时获得的方法。您可以让 Rails 在一个步骤中创建并保存关联的对象,例如
@user.create_personal_profile
关于ruby-on-rails - 我怎样才能干这个代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3226502/
我的主函数中有这两个函数。正如您将看到的,它们两者之间的唯一区别在于它们附加/编辑 html 的方式。我认为最好提出两个新函数,一个执行前半部分,另一个执行后半部分。我不确定这是否可以用 jQuery
我是编码新手,但一直在阅读有关 DRY - 不要重复自己的内容。 我有一个不适合 DRY 方法的 JavaScript if/else 语句,但我无法练习如何编写 JavaScript if/else
我的情况很简单: $("#check-in").dateDropper({ years_multiple: "10", format: "d-m-Y", minYear: "2
我想要一个方法在很多地方创建以下 json 字符串: {"daily_calendar":{"search":{"print_date":"2014-06-30"}}} 我有以下四行代码来制作散列:
我有这个正则表达式来检查字符串的格式是否为date, two or three dots ,date /\A(\d{1,2}-\d{1,2}-\d{4})...?(\d{1,2}-\d{1,2}-\d
我正在试验一些代码来创建我自己的 DOM 方法,但没有扩展实际的 DOM,类似于 jQuery 的工作方式。到目前为止,这是我的原型(prototype): function Lib( selecto
我是 Java 编程的新手。这里有人可以帮我让我的代码保持干燥吗? Button level01 = (Button) findViewById(R.id.level01); level01.setO
我正在通过一个数组来根据外部设置的状态应用不同的类。这就是我现在的做法,但我觉得我在重复自己很多次。有干燥机的方法吗?如果有帮助,类名可以是其他名称。 var children2 = Array.fr
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 4 年前。 Improve t
我正在尝试构建一个搜索页面,使用户能够找到满足特定阈值标准的模型的任何实例,并且在避免严重冗余代码方面遇到困难。我希望有更好的方法来做到这一点。这是一个稍微做作的示例,应该说明我正在尝试做什么,并在最
我是一名优秀的程序员,十分优秀!