Решение для Rails 3.2:
class SomeMailer < ActionMailer::Base
include AbstractController::Callbacks
after_filter :set_delivery_options
private
def set_delivery_options
settings = {
:address => 'smtp.server',
:port => 587,
:domain => 'your_domain',
:user_name => 'smtp_username',
:password => 'smtp_password',
:authentication => 'PLAIN' # or something
}
message.delivery_method.settings.merge!(settings)
end
end
Решение, вдохновленное Как отправлять электронные письма с несколькими динамическими протоколами SMTP, используя Actionmailer / Ruby on Rails
Я предлагаю разместить атрибуты идентификатора в теле, а не в первой строке каждого из них.
HTML
<table>
<tbody id="emergency">
<tr>
<th colspan="2">Emergency</th>
</tr>
<tr>
<td>Emergency data</td>
<td>Emergency data</td>
</tr>
<tr>
<td>Emergency data</td>
<td>Emergency data</td>
</tr>
</tbody>
<tbody id="urgent">
<tr>
<th colspan="2">Urgent</th>
</tr>
<tr>
<td>Urgent Data</td>
<td>Urgent Data</td>
</tr>
<tr>
<td>Urgent Data</td>
<td>Urgent Data</td>
</tr>
</tbody>
</table>
jQuery
var emergencyRows = $("tbody#emergency").find("tr:gt(0)");
var urgentRows = $("tbody#urgent").find("tr:gt(0)");
Фрагмент jQuery получит все соответствующие строки, за исключением первые ряды.
Это, наверное, самый чистый
$('#emergency').closest('tbody').children(); //only returns first child element, so the <tr>'s
Из вашего примера кажется, что вам могут понадобиться «все строки, кроме той, которая содержит #emergency. ". В этом случае вы можете использовать следующее:
$ ('# Emergency'). Closest ('tr'). Siblings ();
Обратите внимание, что #emergency
не обязательно
или
или что-то конкретное. Это может быть любой элемент в ячейке таблицы.
Попробуйте:
var emergencyRows = $("th#emergency").parent().parent().find("tr:gt(0)");
, чтобы получить все строки, не являющиеся строкой заголовка.