0

だから私はいくつかのビューですべてのオブジェクトを単純に書き留めるルビーコードを持っています

%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)

しかし、それが良い方向かどうか、またはそうである場合にどのように継続するかは本当にわかりません...

4

3 に答える 3

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 はテストされていませんが、アイデアが得られるはずです。

于 2013-09-26T18:37:56.633 に答える
1
%ul
  - @user.posts.each do |post|
    %li {data: {role: "choosable-post", id: "#{post.id}"}}
      = post.title

を提供し、HTML で、次のフィドルに示すようにidを見つけることができるはずです: http://jsfiddle.net/gG2gs/2/id

于 2013-09-26T18:45:38.107 に答える
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'))
于 2013-09-26T18:39:44.777 に答える