2015-02-07 2 views
1

Я попытался выполнить руководство Mackenziechild.me.Rails - Не удалось просмотреть ссылку

Ниже приведен код в GitHub https://github.com/ikanyu/raddit

Demo приложение: https://whispering-shelf-9164.herokuapp.com/links/1

Можно ли указать, почему, когда я инспектировать элемент на ссылку я создал (например, Facebook ссылку), я могу ясно видеть фейсбук , Однако, когда я нажимаю на ссылку, это дает мне ошибку.

ActiveRecord :: RecordNotFound в LinksController # показать

Не удалось найти ссылку с 'ид' = facebook

def set_link 
@link = Link.find(params[:id]) 
end 

def authorized_user 
... 

Спасибо !!

<div class="page-header"> 
    <h1><a href="<%= @link.url %>"><%= @link.title %></a><br> <small>Submitted by <%= @link.user.name %></small></h1> 
</div> 

<div class="btn-group"> 
    <%= link_to 'Visit URL', @link.url, class: "btn btn-primary" %> 
</div> 

<div class="btn-group pull-right"> 
    <%= link_to like_link_path(@link), method: :put, class: "btn btn-default btn-sm" do %> 
    <span class="glyphicon glyphicon-chevron-up"></span> 
    Upvote 
    <%= @link.get_upvotes.size %> 
    <% end %> 
    <%= link_to dislike_link_path(@link), method: :put, class: "btn btn-default btn-sm" do %> 
    <span class="glyphicon glyphicon-chevron-down"> 
    Downvote 
    <%= @link.get_downvotes.size %> 
    <% end %> 
</div> 

<% if @link.user == current_user -%> 
    <div class="btn-group"> 
    <%= link_to 'Edit', edit_link_path(@link), class: "btn btn-default" %> 
    <%= link_to 'Destroy', @link, method: :delete, data: { confirm: 'Are you sure?' }, class: "btn btn-default" %> 
    </div> 
<% end %> 

<h3 class="comments_title"> 
    <%= @link.comments.count %> Comments 
</h3> 

<div id="comments"> 
    <%= render :partial => @link.comments %> 
</div> 
<%= simple_form_for [@link, Comment.new] do |f| %> 
    <div class="field"> 
    <%= f.text_area :body, class: "form-control" %> 
    </div> 
    <br> 
    <%= f.submit "Add Comment", class: "btn btn-primary" %> 
<% end %> 
+0

Вы можете оставлять код для этого вида? –

+1

сделано :) пожалуйста, посмотрите – ikanyu

ответ

0

Если вы используете следующий HTML, чтобы создать ссылку на рельсах

<a href="facebook.com">Facebook.com</a> 

Rails соединит вас с YourApp.com/facebook.com (что является недопустимым URL).

Try переписывание вашу ссылку, как это:

<a href="http://www.facebook.com">Facebook.com</a> 

Вам нужно изменить код на ваш взгляд на это:

<div class="page-header"> 
    <h1><a href="http://www.<%= @link.url %>"><%= @link.title %></a><br> <small>Submitted by <%= @link.user.name %></small></h1> 
</div> 

В качестве альтернативы, вы можете редактировать @link. url включить строку "http://www."

+1

Ура! Я пробовал свой путь, и это работает! не возражаете ли вы объяснить, почему предыдущее не работает? – ikanyu

+0

В принципе, когда вы опускаете «http: // www.» Rails просто добавит значение href в конец вашего текущего URL-адреса. Но когда вы добавляете http: //, рельсы будут знать, что это отдельный/независимый URL-адрес. Имеет ли это смысл? –

+0

Примите мой ответ, если он решит вашу проблему ... и дайте мне знать, если у вас есть еще вопросы :) –