У меня есть следующее вложенное выражение if hairball, мне интересно, есть ли более эффективный способ написания этого кода (меньше строк кода, которые не требуют так много условных выражений)
Каждый из методов named_scopes в модели.
box = (params[:b] ? params[:b] : "inbox")
show = (params[:s] ? params[:s] : "all")
if box == "inbox"
if show == "all"
@messages = @current_user.received_messages.all
elsif show == "unread"
@messages = @current_user.received_messages.unread.all
elsif show == "read"
@messages = @current_user.received_messages.read.all
elsif show == "starred"
@messages = @current_user.received_messages.starred.all
else
@messages = []
end
elsif box = "sent"
@messages = @current_user.sent_messages.all
else
@messages = []
end
Я думал, что мог бы использовать метод 'call' для box и показывать как
@current_user.received_messages.call(:box).call(:show).all
возможно ..
UGH, я должен был потратить немного больше времени на игры ... просто, как я и думал, я просто использовал неправильный метод РЕШЕНИЕ
@current_user.send(box).send(show)