好吧,所以在与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)
当我重新加载页面时它是什么意思...