何かを台無しにして申し訳ありませんが、私はここにいるのは初めてなので、ご容赦ください。
ここに私がやりたいことがちょっとあります。データベース内のユーザー 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 %>