2016-08-01 2 views
1

Я пытался бороться с этим бесполезно. Это сводит меня с ума. Обычно я могу спать на чем-то подобном и понимать, что это была опечатка по утрам. Но я не могу спать до тех пор, пока не узнаю этот выход. Во всяком случае, у меня есть индекс отображаемых вопросов, название каждого вопроса - это ссылка на себя. Ничего удивительного. И он работает на локальном хосте. Когда я развертываю герою, это показывает, что это приводит меня к правильной ссылке, и я правильно ее маршрутизирую, когда я нахожу ссылки. (т. е. myapp.herokuapp.com/questions/2). У меня определенно есть ссылки, заданные для question_path (вопрос) в блоке. тем не менее, когда я нажимаю ссылку, она возвращает меня на question_path, обратно к индексу вопросов. Это сводит меня с ума. У кого-нибудь есть такая проблема?Руби Rails моя ссылка не будет работать на Heroku

index.html.erb Вид:

<% if @quests.present? %> 
     <% @quests.each do |question| %> 
     <div class="booyah-box col-xs-10 col-xs-offset-1"> 
     <center> 
      <bptitle> 
       <%= link_to question.qtitle.html_safe, question_path(question) %> 
      </bptitle> 
      <br /> 
      <bpauthor> A question by <%= question.user.firstname %> <%= question.user.lastname %>, from 
      <%= question.user.organization.name %></bpauthor> 
     </center> 
     <br /> 
     <%= question.qbody.split[0..10].join(" ").html_safe %>... <br /><br /> 
      Answers: <%= question.answers.count %><br /> 
     </div> 
    <% end %> 
    <% else %> 
     <p>There are no posts containing the term(s) <%= params[:search] %>.</p> 
    <% end %> 
     </center> 

questions_controller:

def index 
    if params[:search] != nil 
     @quests = Question.search(params[:search]).order("created_at DESC") 
    else 
     @quests = Question.all.order('created_at DESC') 
    end 
end 

    def show 
    @question = Question.find(params[:id]) 
    @answer = Answer.new 
    @faveanswer = Favanswer.new 
    @ans = Answer.find(params[:id]) 
    @qids = [] 
    @qaids = [] 
    Favanswer.all.each do |favanswer| 

    @qids << favanswer.question_id 
    @qaids << [favanswer.question_id, favanswer.answer_id] 

end 
end 

Вопрос модель:

class Question < ActiveRecord::Base 
include Bootsy::Container 

mount_uploader :bootsy, BootsyUploader 

belongs_to :user 
has_many :answers 
has_one :favanswer 

def self.search(search) 
    where("qtitle LIKE ? OR qbody LIKE ?", "%#{search}%", "%#{search}%") 
end 
end 

Пожалуйста, скажите мне, у меня есть опечатка. Если ты поможешь, я поцелую твои ноги. Мне нужно поспать.

Редактирование с помощью моих журналов Heroku на комментарий Андрея ниже:

2016-08-01T13:54:20.800626+00:00 app[web.1]: Started GET "https://stackoverflow.com/questions/3" for  162.244.49.116 at 2016-08-01 13:54:20 +0000 
2016-08-01T13:54:20.803208+00:00 app[web.1]: Processing by  QuestionsController#show as HTML 
2016-08-01T13:54:20.803238+00:00 app[web.1]: Parameters: {"id"=>"3"} 
2016-08-01T13:54:20.806102+00:00 app[web.1]: User Load (1.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]] 
2016-08-01T13:54:20.809813+00:00 app[web.1]: Question Load (0.8ms) SELECT "questions".* FROM "questions" WHERE "questions"."id" = $1 LIMIT 1 [["id", 3]] 
2016-08-01T13:54:20.833346+00:00 app[web.1]: Redirected to  http://mypretendapp.herokuapp.com/questions 
+1

Что говорит ваш журнал в героике? Любые заметки о перенаправлении на индексный метод? Как насчет методов 'rescue_from'? Может ли что-то перенаправить вас из-за не найденного из-за плохих данных о героку? – Andrew

+0

Может кто-то ответить на это? Я тоже застрял на нем. У меня есть петля. И <% = link_to service.website, service.website,: target => '_blank', rel: «nofollow»%> не работает. –

ответ

1

В зависимости от вашей конфигурации Heroku вы можете либо столкнуться с ошибкой 404, либо перенаправляться (по умолчанию, если я хорошо помню), когда страница, которую вы ищете, не существует (либо маршрутизация плохая, либо ваш контроллер вызывает ошибку ActiveRecordNotFound). Если он работает в локальном хосте, я предпочел бы изучить второе предположение. Вы должны проверить свой объект question, который вы передаете своему помощнику URL. Правильно ли это? Имеет ли он идентификатор?

+0

Я тоже не думаю, что это так. Объект вопроса прав, подтвержденный ссылкой, появляющейся, когда я нахожу ссылку, и журналами heroku, которые я добавил выше. Маршрут показывает это: 'question GET /questions/:id(.:format) вопросы # show' – bwatson30

+0

Использовал ли ваш отладчик для проверки ваших варов в вашем методе показа? Все ваши переменные в порядке? Особенно '@ question' и' @ ans', используя 'find'. – Aeradriel

+0

* smooch * Много, много, много махалос мой друг. Я был настолько сосредоточен на переменных вопроса, которые я не смотрел в другом месте. Большой звонок - это была бессмысленная переменная @ans. Я не знаю, как это закончилось или почему у меня это было в первую очередь. Но это вызвало ошибку «ActiveRecordNotFound». Надеюсь, этот поток будет полезен кому-то еще когда-нибудь! – bwatson30

0

Вы пытались заменить переменную question в

<%= link_to question.qtitle.html_safe, question_path(question) %> 

с @question? Если я правильно его прочитаю, это будет указывать на @quests из-за вашего цикла do вместо @question.

+0

Не это. '@ quests' относится ко всем вопросам, поэтому блок ссылается на' @ quests.each', поэтому он говорит для каждого объекта в '@ quests' (вопросы) это действие, и я собираюсь ссылаться на каждый объект как на «вопрос» в цикле. '@ question' не существует для моего индекса. '@ quests' раньше был' @ question', но я сбивался с толку в блоках вроде этого, поэтому я просто изменил его, чтобы помочь себе. – bwatson30

Смежные вопросы