Я решил снова открыть это, потому что я хочу, чтобы здесь было больше мнений людей по этому поводу. Я не ищу полный код, а скорее ваш подход.
Профиль пользователя Stackoverflows (индекс пользователя) довольно сложный, он имеет около 7 вкладок, каждая из которых отображает данные по-своему. Похоже, что они представляют собой мини-представления, каждый из которых использует различную частичку для табличных данных. Я все еще относительно новичок в рельсах и знаю, как использовать партиалы, но не могу понять, как они в одиночку могут решить эту проблему.
Мне также интересно, как избежать использования огромного оператора if else в главном представлении индекса для определения того, какую вкладку / мини-представление следует отображать. Для stackoverflow это будет около 7 операторов case.
КОНЕЦ РЕДАКТИРОВАНИЯ.
следует оригинальный вопрос.
В stackoverflow в области профиля пользователя есть много вкладок, на которых отображается разная информация, такая как задаваемые вопросы и графики. Это тот же самый вид, и я задаюсь вопросом, как лучше всего добиться этого в рельсах, сохраняя при этом контроллер скиновым и логичным в представлении к минимуму.
def index
@user = current_user
case params[:tab_selected]
when "questions"
@data = @user.questions
when "answers"
@sentences = @user.answers
else
@sentences = @user.questions
end
respond_to do |format|
format.html # index.html.erb
nd
end
но как мне обработать это в представлении индекса без загрузки операторов if и else. И если вопросы и ответы представлены по-разному, что лучший способ сделать это.