теги действует как теги, которые не отображаются снова после обновления страницы - PullRequest
2 голосов
/ 28 февраля 2012

Хорошо, так что после нескольких дней борьбы с плагином ruby ​​on rails он работает как taggable-on и сводится к следующему:

У меня есть модель 'События' и календарь (jQuery FullCalendar), где вы можете нажать на сохраненные события, чтобы просмотреть и отредактировать их информацию. У меня есть поле ввода tag_list в режиме редактирования, где вы можете добавить теги, и я вижу в журнале сервера, что теги вставлены в мою базу данных sqlite3, и я правильно вижу их в консоли sqlite3.

Сразу после того, как я сохранил новые теги, они отображаются так, как и было задумано во всплывающем окне просмотра, но как только я обновляю страницу (с / без перезагрузки кэша), они больше не отображаются! Это сводит меня с ума!

Вот код:

Модель - event.rb

class Event < ActiveRecord::Base
 validates :title, :presence => true
 validates :country, :presence => true

 attr_accessible :title, :country, :start, :end, :website, :fbevent, :artists, :description, :admission, :color, :tag_list

 acts_as_taggable_on :tags
end

Контроллер (уничтожить, голова и конец пропущены) events_controller.rb

  def index
    render :json => Event.all
  end

  def create
    render :json => Event.create!(:start => params[:start], :end => params[:end], :title => params[:title],
        :color => params[:color], :country => params[:country], :website => params[:website],
        :fbevent => params[:fbevent], :artists => params[:artists], :description => params[:description],
        :admission => params[:admission], :tag_list => params[:tag_list])
  end

  def update
    event = Event.find(params[:id])
    event.update_attributes!(:start => params[:start], :end => params[:end],
        :title => params[:title], :color => params[:color], :country => params[:country], :website => params[:website], :fbevent => params[:fbevent], :artists => params[:artists], :description => params[:description],
        :admission => params[:admission], :tag_list => params[:tag_list])
    render :json => event
  end

JavaScript application.js, который находится посередине между полями ввода jQuery UI и моделью (функция Open и функция Save)

eventClick: function(fcEvent) {
            this.eventViewNoEdit.model = this.collection.get(fcEvent.id);
            this.eventViewNoEdit.render();
        }, 
open: function() {
        this.$('#title').val(this.model.get('title'));
        this.$('#country').val(this.model.get('country'));
        this.$('#website').val(this.model.get('website'));
        this.$('#fbevent').val(this.model.get('fbevent'));
        this.$('#artists').val(this.model.get('artists'));
        this.$('#description').val(this.model.get('description'));
        this.$('#admission').val(this.model.get('admission'));
        this.$('#tag_list').val(this.model.get('tag_list'));
    },
    save: function() {
            this.model.set({'title': this.$('#title').val(), 'color': 'Blue', 'country': this.$('#country').val(), 'website': this.$('#website').val(), 'fbevent': this.$('#fbevent').val(), 'artists': this.$('#artists').val(), 'description': this.$('#description').val(), 'admission': this.$('#admission').val(), 'tag_list': this.$('#tag_list').val()});
        if (this.model.isNew()) {
            this.collection.create(this.model, {success: this.close});
        } else {
            this.model.save({}, {success: this.close});
        }
    }

Соответствующая часть представления рендера

 <%= content_tag :div, :class =>"eventdiv" do -%>
    <%= content_tag :h2, "Tagged with" %>
    <%= content_tag :p,"", :id=> "tag_list", :class => "field" %>
  <% end -%>

Если у вас есть какие-либо идеи о том, что я делаю неправильно, пожалуйста, дайте мне знать: c Я думаю, что должно быть что-то не так, когда события загружаются в календарь, чтобы соединение с базой данных тегов не было. Я не понимаю, как это должно быть?

Запущен GET "/ events" для 127.0.0.1 в вторник, 28 февраля 09:37:35 +0100 2012 Обработка EventsController # index как JSON Загрузка события (0,6 мс) ВЫБРАТЬ «события». * ИЗ «событий» Завершено 200 OK за 57 мс (Просмотров: 7,0 мс | ActiveRecord: 0,6 мс)

Это то, что он говорит, когда я перезагружаю страницу ...

...