У меня в приложении есть модель User
и модель App
. App
имеет отношение belongs_to
к модели User
.
В шаблоне apps/new.plush.html
мне нужно отобразить список пользователей в виде раскрывающегося списка. Я реализовал интерфейс forms.Selectable
, как показано ниже, в модели User
-
func (a *User) SelectLabel() string {
return a.Name
}
func (a *User) SelectValue() interface{} {
return a.ID
}
Действие New()
в apps.go
выглядит так -
func (v AppsResource) New(c buffalo.Context) error {
tx, ok := c.Value("tx").(*pop.Connection)
if !ok {
return fmt.Errorf("no transaction found")
}
users := &models.Users{}
if atErr := tx.All(users); atErr != nil {
return c.Error(http.StatusNotFound, atErr)
}
c.Set("users", users)
c.Set("app", &models.App{})
return c.Render(http.StatusOK, r.HTML("/apps/new.plush.html"))
}
Теперь, как написать тег Select для рендеринга параметров из массива users
?
Ниже не работает -
<%= f.SelectTag("UserID", {options: users})%>