使用rails活动记录关联创建javascript变量

时间:2014-12-04 20:22:44

标签: javascript jquery html ruby-on-rails ruby-on-rails-4

我不想在dom中添加活动记录关联,但遇到了麻烦。

我有这个编辑类

 .editing
  .row
    .col-sm-3
    .col-sm-8
      .text-left
        #font-20
          .title-font
            .title-editor

实际上,编辑器是空的,这应该是它应该做的。但是当有人编辑他们的头衔时,我不能显示他们保存的头衔。这个编辑器的加载是用jquery进行的,没有页面刷新。

在我的javascript中,我可以从

访问我想要标题的对象的id

JS:

var draft = $(e.target).attr('class');
var id = id.slice(draft); 

使用该ID我想将对象标题添加到dom 这样的事情是理想的,但我不认为这是可能的。

var title = <%= Draft.find_by(id: $id).title %>
$('.title-editor').html(title);

我该怎么办?

1 个答案:

答案 0 :(得分:1)

嗯,你最终需要使用ajax ......

首先,您可以对drafts_controller.rb稍作修改。其中一种方法如下:

def show # @draft is supposingly defined in a before_action callback
    respond_to do |format|
        format.html
        format.json {
            render :json => {'title' = @draft.title}
        }
    end
end

所以,如果你的@draft是:{id:1,标题:'你好'},你将拥有:
http://your.app.com/drafts/1.json将呈现{"title":"hello"}

你怎么用这个?简单...在您的视图中,您将此代码绑定到将触发它的事件。

$.ajax({
    type: "GET",
    url: "/drafts/"+id+".json",
    dataType: "json",
    success: function(data) {
        $('.title-editor').html(data.title);
    }
});