0

ビュー フォルダーでこのエラーundefined local variable or methodtoggle_follow_path '` が発生しています。おそらく、メソッドに何か問題があるか、form_tag + toggle_follow_path を使用していない可能性があります。ちなみに、トグルフォローの目的は、誰かをフォローするか、フォローを外すことです。

ルートファイルで

 match '/:username/toggle_follow',       to: 'home#toggle_follow'

ホームコントローラー

def toggle_follow
     @user =  User.find_by_username(params[:username])
     if current_user.is_friend? @user
       flash[:notice] = "You are no longer following @#{@user.username}"
       current_user.remove_friend(@user)
     else
       flash[:notice] = "You are now following @#{@user.username}"
       current_user.add_friend(@user)
     end
     redirect_to user_flits_path(@user)

  end

見る

<h1><%= image_tag @user.gravatar_url, :align => "top" %> <%= @user.username %></h1>

<%= form_tag  toggle_follow_path, :method => :post do  %>
  <% if current_user.is_friend? @user %>
     <%=h submit_tag "Following"  , :class => "button" %>
  <% else %>
     <%=h submit_tag "Follow"  , :class => "button" %>
  <% end %>
<% end %>
<%=h render :partial => "flits_list", :locals => {:flits => @flits }%>
4

2 に答える 2

1

:asオプションを使用しmatchて、目的のヘルパーの名前を指定します。

match '/:username/toggle_follow', to: 'home#toggle_follow', as: 'toggle_follow'

このようにしてtoggle_follow_path、 との両方toggle_follow_urlが作成されます。

于 2012-12-05T18:27:41.507 に答える
0

:usernameパラメータを受け取る必要があります。

これを試して:

toggle_follow_path(:username => "johndoe") # fill in the correct username.
于 2012-12-05T18:30:24.930 に答える