对不起,如果我搞砸了,但我是新来的,所以请耐心等待。
这就是我想要做的事情。我想根据我的数据库中的用户ID动态地为链接分配ID标签。然后根据我点击的链接,我希望该链接调用控制器帮助程序并将其ID传递给辅助方法。
到目前为止,我能够为每个用户动态分配每个链接,但我的问题是当我点击链接并且它使用ID调用控制器方法 callThis 时,它会得到最后一个用户(数据库中的最后一个用户)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 %>
答案 0 :(得分:0)
为什么不直接在params哈希中传递id并使用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')) %>");