回答
如果你真的想做这样你可以使用的方法来发送,以这样的方式
if @order.send("cardtype#{n}") != "none"
这将执行法“cardtype#{N}”的@order对象。
但是,这通常不是最好的想法,我建议你考虑将此属性转换为has_many关系或可序列化数组。
退房协会是如何工作的本教程(这是最有可能要使用什么):(?数据库列)http://guides.rubyonrails.org/association_basics.html
同意!你也可以迭代''1..9]。每个都做'而不是@数字,但是最好的办法是制作一个单独的卡片模型,纸张的重量,类型和数量作为字段在卡片上,然后只是'@ order.cards.each do | card | ' - 看起来你正在学习铁轨,祝你好运! – court3nay
我认为截至目前我的理解是有缺陷的。我是新来的铁轨,现在我只是想让这个代码给我发电子邮件的细节。现在该信息来自用户提交的表单,用户最多可以有9张卡片。他们只能选择1张卡,如果他们想,我只想。在电子邮件中,我不想显示所有信息,所以我正在尝试使用此设置。后来一旦我了解更多,我想添加更多的用户有许多卡类型设置的发烧友结构。 –
感谢[1..9]技巧。 –
据我了解,cardtypeN
是一种方法,其中N是一个整数。这意味着没有简单的方法来遍历这些属性为Ruby虚拟机本身这些方法都没有联系,即使你给他们打电话cardtype1
,cardtype2
对方,等
而事实上,你的代码突出显示了非常糟糕的设计决定给我。如果一个订单可以有更多的卡片类型,那么您应该确实需要一个卡片模型,并将订单和卡片与一对多关系相关联。
然而,要回答你的问题,你可以动态地组合使用下列方法之一方法:
# [] syntax
@order["cardtype#{n}"]
# send
@order.send("cardtype#{n}")
每种方法都有自己的优点和缺点。说到这里,你可以循环从1到最大cardtypes
<% 1.to(10).each do |index| %>
<% if @order["cardtype#{index}"] != "none" %>
whatever
<% end %>
<% end %>
的数量然而,正如我所说,你真的想重新设计你的模型。
'[]'符号确实读得好多了。值得注意的是,您对糟糕的设计决策的评论来源于违反软件设计的[Zero,One或Infinity Rule](https://en.wikipedia.org/wiki/Zero_one_infinity_rule)。这似乎是'has_many'关系的一个很好的候选人,而不是一堆列。 – tadman
@tadman我同意'has_many',这就是为什么我强调它。我真的觉得拥有索引值的方法名是一种可怕的方法。 –
感谢有关零无限规则的信息。我会研究has_many。我认为我的理解还没有完成,我一直在黑客攻击。 –
- 1. Ruby on Rails语法错误
- 2. 语法错误在Ruby on Rails的
- 3. Ruby on Rails ajax 500语法错误
- 4. Ruby on Rails数组迭代
- 5. Ruby on rails错误
- 6. Ruby on Rails bcrypt-ruby错误
- 7. Ruby On Rails迭代器。每个块错误
- 8. Ruby on Rails错误使用Rails方法
- 9. ruby on rails sql语句错误
- 10. Ruby或Rails数组迭代语法
- 11. edit_content_path错误的Ruby On Rails
- 12. add_index错误[Ruby on Rails的]
- 13. Ruby on Rails中的错误
- 14. 错误:Ruby on Rails的3
- 15. Ruby on Rails的Ajax错误
- 16. Ruby on rails link_to语法
- 17. Ruby on Rails语法混淆
- 18. Ruby on rails link_to语法
- 19. Ruby on Rails的没有方法错误
- 20. Ruby on Rails的:多插入的SQLite3 ::的SQLException:近“”:语法错误:
- 21. SQL迭代语法错误
- 22. PostsController中的语法错误ruby on rails上的#index
- 23. Ruby on Rails的语法错误在欢迎#指数
- 24. Ruby on Rails的语法错误与比赛
- 25. Ruby on rails错误undefined方法`map'for nil:NilClass
- 26. Ruby on Rails类型错误
- 27. Ruby on Rails Mongrel错误
- 28. Ruby on Rails和MySQL错误
- 29. Ruby on Rails错误处理
- 30. Ruby on Rails config.secret_token错误
一个很好的提示,可以帮助他人在将来帮助您,将您的代码粘贴到问题和错误消息中。 – gernberg
以字符形式发布代码,而不是图片。 – sawa
感谢您的意见 –