2013-11-01 4 views
0

Мой сервер rails говорит, что он отобразил мои частичные данные на моей странице, но содержимого там нет. Даже когда я просматриваю элементы на странице с помощью Chrome DevTools, div, который должен быть визуализирован, не существует.Rails не делает частичным, как он говорит, что он имеет

EDIT: Исправлена ​​эта проблема, но теперь частичное внутри этого частичного изображения не будет отображаться. Я открою новый вопрос для этой проблемы.

show.html.erb (с исправлением):

<% provide(:title, @user.name) %> 
<% provide(:pagetitle, @user.name) %> 

<% render'layouts/relation' unless current_user?(@user)%> 

<div id="stats"> 
    Player Statistics will appear here. 
</div> 

<div id="characters"> 
    Player Characters will appear here. 
</div> 

_relation.html.erb (частичное):

<div id="relation"> 
    <% if current_user.friends?(@user) %> 
     <%= render 'layouts/edit_relation', locals: { action: "rm-friend" } %> 
    <% elsif current_user.req_friends?(@user) %> 
     Friend Request Pending... 
    <% elsif current_user.pend_friends?(@user) %> 
     <%= render 'layouts/edit_relation', locals: { action: "add-friend" } %> 
     <%= render 'layouts/edit_relation', locals: { action: "rej-friend" } %> 
    <% else %> 
     <%= render 'layouts/edit_relation', locals: { action: "req-friend" } %> 
    <% end %> 
</div> 

_edit_relation.html.erb (парциальное в частичное):

<% case :action %> 
    <% when "req-friend"%> 
     <%= form_for(current_user.relation.build(character: @user.id, type: "freq"), remote: true) do |f| %> 
      <div><%= f.hidden_field :character %></div> 
      <div><%= f.hidden_field :type %></div> 
      <%= f.submit "Add Friend", class: "btn btn-large btn-primary" %> 
     <% end %> 

    <% when "add-friend"%> 
     <%= form_for(current_user.relation.build(character: @user.id, type: "friend"), remote: true) do |f| %> 
      <div><%= f.hidden_field :character %></div> 
      <div><%= f.hidden_field :type %></div> 
      <%= f.submit "Accept Request", class: "submit" %> 
     <% end %> 

    <% when "rej-friend" %> 
     <%= form_for(current_user.reverse_relation.find_by(owner: @user.id, type: "freq"), html: { method: :delete }, remote: true) do |f| %> 
      <%= f.submit "Reject Request", class: "submit" %> 
     <% end %> 

    <% when "rm-friend"%> 
     <%= form_for(current_user.reverse_relation.find_by(owner: @user.id, type: "friend"), html: { method: :delete }, remote: true) do |f| %> 
      <%= f.submit "Remove Friend", class: "submit" %> 
     <% end %> 

<% end %> 

журнал Мой сервер, говорит, что часть была оказана:

Started GET "/melv" for 127.0.0.1 at 2013-11-01 21:22:21 +0000 
Processing by UsersController#show as HTML 
    Parameters: {"name"=>"melv"} 
    User Load (1.0ms) SELECT "users".* FROM "users" WHERE "users"."remember_token 
" = '35599bfa491cb6b5e10f164c0191d51cd773f173' LIMIT 1 
    User Load (1.0ms) SELECT "users".* FROM "users" WHERE "users"."name" = 'melv' 
LIMIT 1 
    Relation Load (1.0ms) SELECT "relations".* FROM "relations" WHERE "relations" 
."owner" = $1 AND "relations"."character" = 1 AND "relations"."type" = 'friend' 
LIMIT 1 [["owner", 2]] 
    Relation Load (0.0ms) SELECT "relations".* FROM "relations" WHERE "relations" 
."owner" = $1 AND "relations"."character" = 1 AND "relations"."type" = 'freq' LI 
MIT 1 [["owner", 2]] 
    Relation Load (1.0ms) SELECT "relations".* FROM "relations" WHERE "relations" 
."owner" = $1 AND "relations"."character" = 2 AND "relations"."type" = 'freq' LI 
MIT 1 [["owner", 1]] 
    Rendered layouts/_edit_relation.html.erb (0.0ms) 
    Rendered layouts/_relation.html.erb (14.0ms) 
    Rendered users/show.html.erb within layouts/application (23.0ms) 
    Rendered layouts/_shim.html.erb (0.0ms) 
    Rendered layouts/_header.html.erb (1.0ms) 
    Relation Load (1.0ms) SELECT "relations".* FROM "relations" WHERE "relations" 
."owner" = 1 LIMIT 1 
    Rendered layouts/_aside.html.erb (4.0ms) 
    Rendered layouts/_flash.html.erb (0.0ms) 
Completed 200 OK in 299ms (Views: 290.0ms | ActiveRecord: 5.0ms) 

Любые идеи?

+0

Вы видите пустую '

+0

Ничего вообще @depa –

ответ

2

Вы должны использовать рендеринг ERB тег:

<%= render 'layouts/relation' unless current_user?(@user) %> 
+0

Спасибо @depa. Теперь есть пустой div без содержимого. Вы можете увидеть мое редактирование выше, пожалуйста? –

+0

Если мой ответ решил вашу первоначальную проблему, пожалуйста, примите его в качестве правильного ответа. Если у вас есть другие проблемы, способ их поиска - открыть новые вопросы. – depa

0

Так из ваших макетов/отношение частичного рендеринга вы другой частичный (макеты/edit_relation), не так ли? Может быть, вот в чем проблема.

+0

См. Ответ депы выше, он прав. – Morred

1

Вы упускаете = here--

<%= render 'layouts/relation' unless current_user?(@user) %> 

Вызов render еще будет генерировать строку, поэтому вы видите его в журналах; без знака равенства он не появится на странице.

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