我一直有問題,我想寫我的if else邏輯在我的控制器的新動作的方式。例如,用戶在用戶表中有兩個不同的filde,讓我們說premium_user和gold_user。我將如何編寫if else語句來說明如果用戶是高級用戶,他可以上傳3本書,並且如果用戶是金牌用戶,他可以上傳無限的書籍,而他只是沒有黃金或高級版的用戶,他只能上傳我的控制器的新行動中有2本書。謝謝簡單如果其他語句在軌道
1
A
回答
1
1
好吧,您可以選擇使用用戶表單(使用嵌套屬性)或書本形式直接上傳圖書。你可以把驗證給用戶。
class User
has_many :books
validates :books, :length => { if: Proc.new { |r| r.gold? }, allow_nil: true, maximum: 3, too_long: 'gold users can only upload 3 books' }
validates :books, :length => { if: Proc.new { |r| r.standard? }, allow_nil: true, maximum: 3, too_long: 'gold users can only upload 3 books' }
end
class Book
belongs_to :user
validates :user, :presence => true, associated: true
end
即使你通過書籍提交,請確保您創建一個新的書籍user.books.build
,爲了驗證正確的行爲。
請注意,您的控制器新建或創建操作將是相同的,無需分叉用戶類型進行驗證。
也許你想在你的書籍/新視圖中放一個便條,或者如果用戶達到最大允許上傳的話,可以禁用該表格。
希望這可以幫助
相關問題
- 1. javascript,簡單如果其他語句
- 2. 重構軌道如果其他語句與單行返回?
- 3. 簡單如果其他語句不起作用
- 4. 簡單的PHP命中計數器/如果其他語句
- 5. mysql如果其他語句
- 6. 如果其他語句
- 7. PHP如果其他語句
- 8. PHP如果其他語句
- 9. Excel-如果其他語句
- 10. RUby在軌道上,如果其他語法混淆
- 11. 簡單(?)grails如果語句
- 12. 如果語句與表單選擇在軌道上
- 13. PHP如果&其他語句在Wordpress
- 14. 如果其他OR語句在Assembly中?
- 15. 如果其他語句在vb.Net
- 16. 如果...其他語句在引號內
- 17. 如果其他語句在Swift中
- 18. 如果其他在軌
- 19. 如果/其他如果總是去其他語句
- 20. 如何簡化此代碼? (如果其他語句太多)
- 21. 簡單如果在Java語句
- 22. 如何:鬍子如果其他語句
- 23. .equal不能在其他語句中工作如果語句爲
- 24. 我的其他語句在其他樹如果沒有打印
- 25. 我的其他語句如果語句給出語法錯誤
- 26. 鏈接如果其他語句
- 27. 如果/使用PHP的其他語句?
- 28. MySQL如果其他語句內查詢
- 29. 如果 - 其他語句不起作用
- 30. Javascript Todolist類如果其他語句
你有一個點表,並且我從來不知道abt它直到今天謝謝。但我真的知道如何使用它,下面給出的例子並不足以滿足我的情況。 – Uchenna
我有的字段只是布爾字段。 – Uchenna
我剛剛用康康寫了我的邏輯,並更新了你所說的看法,它的工作就很好。 – Uchenna