Я просто изучал Sinatra и DataMapper при создании простого блога.Кажется, у меня возникла проблема с работой моей ассоциации «многие ко многим».Я пытаюсь связать категории с постами.При создании сообщения ассоциация категорий не создается.
Вот мои модели:
class Post
include DataMapper::Resource
has n, :categories, :through => Resource
property :id, Serial
property :title, String
property :slug, String
property :body, Text
property :description, Text
property :created_at, DateTime
property :updated_at, DateTime
property :posted_at, DateTime
end
class Category
include DataMapper::Resource
has n, :posts, :through => Resource
property :id, Serial
property :title, String
end
DataMapper успешно создает таблицу category_posts.Я не думаю, что код является правильным в моей форме создания.
<form action="/post/create/" method="post">
<% @category = Category.all %>
<% @category.each_with_index do |cat,i| %>
<input id="category<%=i%>" type="checkbox" value="<%= cat.title %>" name="post.category.<%=cat.id%>" />
<label for="category<%=i%>"><%= cat.title%></label>
<% end %>
<p>
<input type="submit">
</p>
</form>
Я попытался вручную создать записи в таблице category_posts, и никакие записи не отображаются.Вот часть моего взгляда, связанная с категориями.Счет для отладки, он всегда показывает 0.
<%= @post.categories.count %>
<% @post.categories.each do |category| %>
<p>Test: <%= category.title %></p>
<% end %>
Есть идеи, что я делаю не так?
Спасибо