У меня установлены простые отношения HABM между пользователями и детьми.
Если ребенок принадлежит вам, я хочу, чтобы вы увидели ребенка и имя других пользователей, к которым принадлежит этот дочерний объект.По какой-то причине я не могу напечатать имя других пользователей, к которым принадлежит ребенок.
Я выбираю так:
@children = Child.all(:include => :users, :conditions => ["users.id = ? AND enrolled = ?", current_user.id, true])
и пытаюсь напечатать так:
<% for user in child.users%>
<% if can? :manage, Child %>
<a rel='tipsy'><%= link_to '[#{user.first_and_last_name}]', edit_child_path(child), :title => "#{user.updateChoice}"%></a>
<%else%>
<a rel='tipsy'><%= link_to '[#{user.first_and_last_name}]', new_parentnote_path, :title => "#{user.updateChoice}"%></a>
<%end%>
<%end%>
Он выбирает правильных потомков, но НЕ печатает имя других пользователей.Только имя текущего пользователя.
Если я выберу всех детей
Child.all
, все будет работать как положено.Все имена печатаются, что говорит мне о том, что не моя система аутентификации делает что-то подозрительное, а что-то другое ... вероятно, способ, которым я выбираю детей, хотя я пробовал несколько способов = (
Я не уверен, что я пропустилчто-то действительно очевидное, но это озадачило меня на несколько часов.
Любая помощь очень ценится. Спасибо.
РЕДАКТИРОВАТЬ - Добавить схему
По просьбе нижевот схема. Насколько я могу судить, отношения настроены нормально. Это просто получение нескольких пользователей на основе current_user, что не происходит, как описано выше. Если я использую запрос выше, даже если у ребенка есть несколькопользователи (я вижу, что при выполнении child.count) он будет печатать только имя текущего пользователя, по какой-то причине он не извлекает имя другого пользователя, которому также принадлежит дочерний элемент.
create_table "children_users", :id => false, :force => true do |t|
t.integer "child_id"
t.integer "user_id"
end
Тогда у меня есть дети.
create_table "children", :force => true do |t|
t.string "first_name"
t.string "last_name"
t.boolean "enrolled", :default => true
t.datetime "unenrolled_datetime"
end
и пользователи
create_table "users", :force => true do |t|
t.string "email"
t.string "encrypted_password"
t.string "first_name"
t.string "last_name"
........ other stuff to reset password etc
end