Ruby on Rails: 在 patial 中使用 if 语句
Ruby on Rails: Using an if statement in a patial
我正在使用 Gmaps4Rails 显示带有标记的地图。单击每个标记时,我的目的是让信息窗口仅显示有关该特定标记的 table 信息。我正在使用部分生成此 table,但是每当单击任何引脚时,table 也会显示有关所有其他引脚的数据。我相信我需要在部分中使用 if 语句来比较在控制器中单击的引脚与部分生成的数据。不幸的是,我目前拥有的 if 语句根据单击的 pin 将正确的公司替换为 table 中每一行的名称槽,但不限制哪些行被 returned。如何在部分中编写一个 if 语句,使 return 只有正确的行?
controller.rb:
def index
@internships = Internship.all
@internship_properties = Array.new
@internships.each do |internship|
@internship_properties.push(internship)
end
@hash = Gmaps4rails.build_markers(@internship_properties) do |internship_prop, marker|
marker.lat internship_prop.latitude
marker.lng internship_prop.longitude
marker.infowindow render_to_string(:partial => "/internships/info", :locals => { :internship => @internship, :internship_prop => internship_prop.company})
end
end
_info.html.erb
<% @internships.each do |internship| %>
<% if internship.address = internship_prop %>
<h3><%=internship.address%></h3>
<h5>Name: <%=internship.name%></h5>
<table class="table table-hover">
<tr>
<th>Company</th>
<th>Title</th>
<th>Date</th>
<th>Description</th>
</tr>
<tr>
<td><%=internship.company%></td>
<td><%=internship.title%></td>
<td><%=internship.date%></td>
<td><%=internship.description%></td>
</tr>
</table>
<% end %>
<% end %>
你应该有:
<% if internship.address == internship_prop %>
而不是
<% if internship.address = internship_prop %>
在 _info.html.erb 中。单数 =
符号代表将 return 赋值的赋值, ==
代表实际比较。
但是根据我从您的描述中了解到的情况,控制器应该 return 仅选择引脚的数据。也许考虑使用 ajax
调用来异步获取所选引脚的数据,而不是加载所有 internships
。您可以使用例如 jQuery load()
function.
我正在使用 Gmaps4Rails 显示带有标记的地图。单击每个标记时,我的目的是让信息窗口仅显示有关该特定标记的 table 信息。我正在使用部分生成此 table,但是每当单击任何引脚时,table 也会显示有关所有其他引脚的数据。我相信我需要在部分中使用 if 语句来比较在控制器中单击的引脚与部分生成的数据。不幸的是,我目前拥有的 if 语句根据单击的 pin 将正确的公司替换为 table 中每一行的名称槽,但不限制哪些行被 returned。如何在部分中编写一个 if 语句,使 return 只有正确的行?
controller.rb:
def index
@internships = Internship.all
@internship_properties = Array.new
@internships.each do |internship|
@internship_properties.push(internship)
end
@hash = Gmaps4rails.build_markers(@internship_properties) do |internship_prop, marker|
marker.lat internship_prop.latitude
marker.lng internship_prop.longitude
marker.infowindow render_to_string(:partial => "/internships/info", :locals => { :internship => @internship, :internship_prop => internship_prop.company})
end
end
_info.html.erb
<% @internships.each do |internship| %>
<% if internship.address = internship_prop %>
<h3><%=internship.address%></h3>
<h5>Name: <%=internship.name%></h5>
<table class="table table-hover">
<tr>
<th>Company</th>
<th>Title</th>
<th>Date</th>
<th>Description</th>
</tr>
<tr>
<td><%=internship.company%></td>
<td><%=internship.title%></td>
<td><%=internship.date%></td>
<td><%=internship.description%></td>
</tr>
</table>
<% end %>
<% end %>
你应该有:
<% if internship.address == internship_prop %>
而不是
<% if internship.address = internship_prop %>
在 _info.html.erb 中。单数 =
符号代表将 return 赋值的赋值, ==
代表实际比较。
但是根据我从您的描述中了解到的情况,控制器应该 return 仅选择引脚的数据。也许考虑使用 ajax
调用来异步获取所选引脚的数据,而不是加载所有 internships
。您可以使用例如 jQuery load()
function.