2013-09-26 2 views
0

Так у меня есть рубин код, который просто записывает все мои объекты вниз в какой-то точки зренияПолучение идентификатора объекта рубинового с JQuery

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

Теперь фокус в том числе не отправляет себя, только заголовки. как я могу получить идентификатор определенной должности с помощью jQuery? Конечно, User has_many :posts, поэтому каждый пост имеет свой собственный идентификатор.

я полагал, что это может начаться, как это ...

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

, но я действительно не знаю, если его хорошее направление или как продолжить работу, если это ...

+0

Имеет ли 'post' атрибут id в ruby? Если да, то делайте то, что они говорят ниже. –

+0

jQuery работает на стороне клиента и имеет только доступ к DOM, запрещающий AJAX. Ruby работает на стороне сервера и завершит его выполнение задолго до того, как браузер начнет выполнение какого-либо JavaScript. Эти два не могут взаимодействовать напрямую. – meagar

ответ

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 не проверен, но должен дать вам эту идею.

0

оказывают идентификатор сообщения в атрибуте данных

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

получить ту сторону клиента с помощью JQuery

$(".post-container").click -> 
    li = $(this) 
    console.log(li.data('post-id')) 
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/

Смежные вопросы