1

これが私の show.html.erb ファイルです。

<% provide(:title, @user.name) %>
<div class="row">
    <aside class="span4">
        <section>
            <h1>
                <%= gravatar_for @user %>
                <%= @user.name %>
            </h1>
        </section>
        <section>
            <%= render 'shared/stats' %>
        </section>
    </aside>
    <div class="span8">
        <%= render 'follow_form' if signed_in? %>
    <% if @user.microposts.any? %>
      <h3>Microposts (<%= @user.microposts.count %>)</h3>
      <ol class="microposts">
        <%= render @microposts %>
      </ol>
      <%= will_paginate @microposts %>
    <% end %>
  </div>
</div>

_follow.html.erb 部分ファイル:

<%= form_for(current_user.relationships.build(followed_id: @user.id),
             remote: true) do |f| %>
  <div><%= f.hidden_field :followed_id %></div>
  <%= f.submit "Follow", class: "btn btn-large btn-primary" %>
<% end %>

_unfollow.html.erb 部分ファイル:

<%= form_for(current_user.relationships.find_by_followed_id(@user),
             html: { method: :delete },
             remote: true) do |f| %>
  <%= f.submit "Unfollow", class: "btn btn-large" %>
<% end %>

そして、私の _follow_form.html.erb パーシャル:

<% unless current_user?(@user) %>
  <div id="follow_form">
  <% if current_user.following?(@user) %>
    <%= render 'unfollow' %>
  <% else %>
    <%= render 'follow' %>
  <% end %>
  </div>
<% end %>

編集:私はBootstrapを使用していると言いたいです。ユーザー ページを調べると、span4 と span8 の両方のクラスが表示されますが、「follow_form」があるべき場所が完全に空白になっています。

編集:この質問は何年も前に回答されました:)

4

1 に答える 1

0

私は同じ問題に遭遇しました。次の変更を行うことでこれを修正できます。

ステップ 1) app/views/users/show.html.erb で、コードを次から変更します。

<div class = "span8">
    <%= render 'follow_form' if signed_in? %>      
        <% if @user.microposts.any? %>

これに:

<div class = "span8">
    <%= render 'shared/follow_form' if signed_in? %>      
        <% if @user.microposts.any? %>

ステップ 2) 部分的な app/views/shared/_follow_form.html.erb で

これからコードを変更します:

<% unless current_user?(@user) %>
  <div id="follow_form">
  <%if current_user.following?(@user) %>
    <%= render 'unfollow' %>
  <% else %>
    <%= render 'follow' %>
  <% end %>
  </div>
<% end %>

これに:

<% unless current_user?(@user) %>
  <div id="follow_form">
  <%if current_user.following?(@user) %>
    <%= render 'shared/unfollow' %>
  <% else %>
    <%= render 'shared/follow' %>
  <% end %>
  </div>
<% end %>
于 2012-08-11T07:08:43.453 に答える