vestal_versions и htmldiff вопрос реверсии - PullRequest
1 голос
/ 28 апреля 2010

Я предполагаю, что, возможно, есть более простой способ сделать то, что я делаю, чтобы код был менее громоздким.

У меня были проблемы с пониманием того, как использовать метод revert_to ... Я хотел что-то, чтобы я мог вызывать две разные версии одновременно, но, похоже, это не тот способ, которым работает vestal_versions.

Этот код работает, но мне интересно, если я делаю что-то сложнее, чем нужно, и я хотел бы узнать, прежде чем углубиться.

@article = Article.find(params[:id])

if params[:versions]
  v = params[:versions].split(',')
  @article.revert_to(v.first.to_i)
  @content1 = @article.content
  @article.revert_to(v.last.to_i)
  @content2 = @article.content
end

Если вам интересно, я использую это вместе с HTMLDIFF, чтобы получить изменения версии.

<div id="content">
  <% if params[:versions] %>
    <%= Article.diff(@content1, @content2) %>
  <% else %>
    <%= @article.content %>
  <% end %>
</div>

1 Ответ

2 голосов
/ 29 апреля 2010

Я думаю, что вы ищете метод changes_between, который предоставляет vestal_versions.

@article = Article.find(params[:id])

if params[:versions]
  v = params[:versions].split(',')
  @article_changes = @article.changes_between(v.first.to_i, v.last.to_i)
end

затем @article_changes - это хэш изменений между версиями. Что-то вроде

{"content" => ["first version content", "second version content"]}

Может быть разным в зависимости от того, что у вас есть версия.

...