回答
如果你真的想做這樣你可以使用的方法來發送,以這樣的方式
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
感謝您的意見 –