在页面刷新后不再显示的act-as-taggable-on标签

时间:2012-02-28 08:46:55

标签: ruby-on-rails acts-as-taggable-on

好吧,所以在与rails上的红宝石进行摔跤之后,插件可以作为标签进行几天,它已经归结为:

我有一个模型'Events'和一个日历(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

位于jQuery UI输入框和模型之间的JavaScript application.js(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我想在将事件加载到日历中时必定存在错误,以便与'tags'数据库的连接不会跟随,但我不明白它应该如何?

在2012年2月28日星期二09:37:35 +0100开始获取127.0.0.1的“/ events” 由EventsController处理#index为JSON   事件加载(0.6ms)选择“事件”。* FROM“事件” 在57ms完成200 OK(浏览次数:7.0ms | ActiveRecord:0.6ms)

当我重新加载页面时它是什么意思...

0 个答案:

没有答案