Что мне нужно - это поиск названий сюжетов, а также того, кому эта история принадлежит всем в одном поиске.Rails: как вы используете поисковый запрос, чтобы найти элемент belongs_to?
Очевидно, что это не так, но он получает свою точку зрения:
@stories = Story.where("user.display_name LIKE ? And title LIKE ?",
"%#{@query}%", "%#{@query}%").limit(500).page(params[:page])
Истории принадлежат пользователям и пользователи имеют много историй. Не уверен, что еще мне нужно поставить здесь, и я не понял никаких ответов, которые, похоже, связаны.
Спасибо.
UPDATE
<% if @stories.size == 0 %>
Sorry, there were no stories found.
<% else %>
<table class="sortableTable table-striped" style="width: 100%; text-align: left;">
<thead>
<tr>
<th width="55%">Title</th>
<th width="25%">User</th>
<th width="10%">Created At</th>
<th width="10%">Updated At</th>
</tr>
</thead>
<tbody>
<% @stories.each do |s| %>
<tr>
<td width="55%"><div class="span5 search_result"><%= link_to s.title, s %></div></td>
<td width="25%"><div class="span3 search_result"><%= link_to s.user.display_name, s.user %></div></td>
<td width="10%"><div class="span3 search_result"><%= time_ago_in_words(s.created_at) %> ago</div></td>
<td width="10%"><div class="span3 search_result"><%= time_ago_in_words(s.updated_at) %> ago</div></td>
</tr>
<% end %>
</tbody>
</table>
<% end %>
Спасибо, попробовал, и он не работал. Я получил эту ошибку: SQLite3 :: SQLException: нет такого столбца: user.display_name: SELECT COUNT (count_column) FROM (SELECT 1 AS count_column FROM "stories" INNER JOIN "users" ON "users". "Id" = "stories" . user_id "WHERE (user.display_name LIKE '%%%%%' И название LIKE '%%%%%') LIMIT 20 OFFSET 0) subquery_for_count. Коды, которые вы предоставили, были одинаковыми, но не были уверены, что это было намеренно. Благодаря! – user1467317
Изменено: Story.joins (: user) .where ("display_name LIKE: term И заголовок LIKE: term",: term => "% # {@ query}%"). Limit (500) .page (params [: page]), и теперь он, по крайней мере, ищет без ошибок, но все равно не вытащит что-либо, что соответствует отображаемому имени пользователя. – user1467317
Обновлен ответ. –