RoR创建一个动态的“evernote” - 页面

时间:2011-11-22 12:18:02

标签: javascript jquery ruby-on-rails ruby evernote

所以我正在创建一个带有evernote外观的简单RoR应用程序。

notebook.rb

class Notebook < ActiveRecord::Base
  belongs_to :user
  has_many :notes
end

note.rb

class Note < ActiveRecord::Base
  belongs_to :user
  belongs_to :notebook
end

我继续创建一个带索引视图的静态控制器,这将是我显示仪表板的地方

static_controller.rb

class StaticController < ApplicationController
  def index
    if user_signed_in?
      @user = current_User
      @notebooks = @user.notebooks
      @notes = @user.notes
    end
  end
end

我应该如何显示笔记本列表?每当用户点击特定笔记本时,该笔记本的笔记就会显示在第二列......

我正在考虑为此创建iframe,但如果这些都是div并且我们可以使用jquery动态更新它们会更好......但我仍然没有想出如何做到这一点。< / p>

很抱歉听起来非常新手。

这是我基本上想要完成的事情的快照

http://i.stack.imgur.com/8gs0l.png

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

hashify notes以通过notebook_id

对其进行分组

@notes_hash = @ user.notes.group_by(&amp;:notebook_id)

然后在你的笔记本列表上,当点击笔记本链接时,抓住notebook_id并查看你的@notes_hash

notes = @notes_hash [notebook.id] || []

您可以使用jQuery动态更新第二列。

<script type="text/javascript">
  var notes = <%= notes.collect{|a| a.note_content }.to_json %>;

  /* 
   * do stuff here with your array of notes content
   *
   */

</script>

确保你需要'json'gem来使用.to_json方法。