0

何かを台無しにして申し訳ありませんが、私はここにいるのは初めてなので、ご容赦ください。

ここに私がやりたいことがちょっとあります。データベース内のユーザー ID に基づいて、リンクに ID タグを動的に割り当てたいと考えています。次に、クリックしたリンクに基づいて、そのリンクでコントローラー ヘルパーを呼び出し、その ID をヘルパー メソッドに渡します。

これまでのところ、各ユーザーに各リンクを動的に割り当てることができますが、私の問題は、リンクをクリックしてコントローラーメソッドcallThisを ID で呼び出すと、最後のユーザー (データベース内の最後のユーザー) の ID を取得することです。クリックしたリンクのユーザー ID の代わりに。

私の質問は、データベース内の最後のユーザーの ID ではなく、クリックしたリンクの ID を送信するにはどうすればよいですか?

これが私のコードです。

index.html.erb

<div id="profile"></div>
<table>
<% @users.each do |u| %>
    <% if !u.nil? and u.department_id == department.id %>
      <tr class="<%= department.id %>" style="display:none;text-align:left;">
        <td>
          <a href="#id-<%= u.id %>" id="id-<%= u.id %>" onclick="<%= callThis(u.id) %>; refresh();">
            <%= "#{u.first_name} #{u.last_name}" %> 
          </a>
        </td>
      </tr>
    <% end %> 
  <% end %>
</table>
<script>
  function refresh(){
    $('#profile').html("<%= escape_javascript(render(:partial => 'profile')) %>"); 
  }
</script>

Professors_controller.rb

class ProfessorsController < ApplicationController
  helper_method :callThis
  helper_attr :get_id
  attr_accessor :get_id

  def index
    @departments = Department.all
    @users = User.with_role :Professor
    @search  = @users.search(params[:q])
    @result = @search.result
    @id = 0
  end

  def callThis(id)
    @id = id
  end
  def get_id
    @id
  end
end

profile.html.erb

<%= get_id.to_s %>
4

1 に答える 1

0

ID を params ハッシュに戻して、ajax を使用してプロファイル ビューをレンダリングしてみませんか?

   <td>
     <%= link_to "#{u.first_name} #{u.last_name}", name_of_your_path({:user_id => u.id), :"data-remote" => true %>

    </td>

次に、コントローラーで

class ProfessorsController < ApplicationController
  def profile
    @user = User.find(params[:user_id])
    respond_to do |format|
      format.js
    end
  end
 end

次に、js 拡張機能を使用してビューを作成します。「profile.js.erb」とそのファイル

$('#profile').html("<%= escape_javascript(render(:partial => 'profile')) %>");
于 2013-06-15T23:39:06.970 に答える