使用jquery获取ruby对象的id

时间:2013-09-26 18:32:15

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

所以我有ruby代码,只是在某些视图中写下我的所有对象

%ul
    - @user.posts.each do |post|
        %li {data: {role: "choosable-post"}}
            = post.title

现在的诀窍是那些不是帖子本身,只是标题。如何用jQuery获取特定帖子的id?当然User has_many :posts所以每个帖子都有自己的id。

我认为它可以像这样开始......

$("li[data-role=choosable-post]").onclick ->
    my_object = @(this)

但我真的不知道它是否是一个好的方向,或者如果它是如何继续......

3 个答案:

答案 0 :(得分:3)

您已经在使用数据字段,在那里存储有关对象的信息非常常见:

%ul
  - @user.posts.each do |post|
    %li {data: {role: "choosable-post", id: "#{post.id}"}}
      = post.title

现在它在你选择的元素中,所以它应该是这样的:

$("li[data-role=choosable-post]").onclick ->
  my_object_id = $(this).data('id')

JavaScript未经测试,但应该给你一个想法。

答案 1 :(得分:1)

%ul
  - @user.posts.each do |post|
    %li {data: {role: "choosable-post", id: "#{post.id}"}}
      = post.title

将为您提供id,然后,在您的HTML中,您应该能够找到id,如此小提琴所示:http://jsfiddle.net/gG2gs/2/

答案 2 :(得分:0)

将帖子ID渲染为数据属性

%li {class: "post-container", data: {role: "choosable-post", post-id: post.id}}

使用jquery

检索该客户端
$(".post-container").click ->
  li = $(this)
  console.log(li.data('post-id'))