Почему моя функция фильтрации не работает на Heroku, когда она работает на моей машине Dev? - PullRequest
0 голосов
/ 18 октября 2011

Итак, у меня есть эта страница, которая разбивает всех участников на моем сайте, и я добавил алфавитную ссылку, чтобы люди могли найти участников по их имени.Он отлично работает на моей машине разработчика, но он не работает на heroku.

Мой контроллер имеет:

  def artists
     @artists = Member.joins(:member_role).where("member_roles.artist" => true).page(params[:page]).per(20)
     @names = Member.joins(:member_role).where("member_roles.artist" => true).where("membername LIKE ?", "#{params[:letter]}%").page(params[:page]).per(20)

  end

, и мой взгляд имеет:

  <% ('A'..'Z').each do |a|%>
    <%= link_to a, {:action => :artists, :controller =>:members, :letter => a } %>
  <% end%>


  <% if params[:letter].nil? %>
    <div class="content">
      <%= paginate @artists %>
    </div>

    <ol class="members_list">
    <% @artists.each do |member| %>....

Так что япроверка, были ли переданы какие-либо параметры, а если нет, то отображается @artists, в противном случае @names - это.И отлично работает на моем ноутбуке, но не в героку

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Полагаю, это зависит от регистра.

Большинство сборок MySQL, которые, как вы говорите, используете, не имеют LIKE с учетом регистра.

Postgres, по умолчанию, чувствителен к регистру для LIKE. Чтобы обойти это, используйте ILIKE:

SELECT * FROM foo WHERE name ILIKE '%a%'

(обратите внимание на подстановочный знак '%' вокруг a)

Вы действительно должны стараться, чтобы ваша среда разработки была как можно ближе к работе, чтобы уменьшить количество ошибок такого рода. Используйте Postgres.

0 голосов
/ 18 октября 2011

Когда вы говорите, что это не работает - есть ли ошибки?

Вы можете попробовать журнал (ы) heroku, чтобы увидеть, есть ли какие-либо ошибки.

Какая база данных вы используете вDEV?Используете ли вы postgres?

Heroku использует postgres, который имеет некоторые специфические особенности - поэтому, если вы работаете с sqlite или mysql в dev, то возможно, что вы получите другое поведение в Heroku./ или использовать postgres локально.

HTH, Крис

PS Советы Heroku для миграции на postgres

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...