我一直在关注教程Follower Tutorial,并且我一直得到错误的未定义方法`find_by_username'。
<%= render '/components/follow_button', :user => User.find_by_username(params[:id]) %>
show.html.erb
<%= render '/components/follow_button', :user => User.find_by_username(params[:id]) %>
<div class="panel panel-default">
<div class="panel-body">
<h5 style="color: grey; font-size: 125%;">Who to follow</h5>
<% for @u in @toFollow do %>
<p style="font-weight: bold; opacity: 0.85;" ><a href="/user/<%= @u.username %>"><%= @u.username %></a></p>
<% end %>
</div>
</div>
user.rb
def unfollow(other)
active_relationships.find_by(followed_id: other.id).destroy
_follow_button.html.erb
<% if current_user.id != user.id %>
<div class="panel panel-default">
<div class="panel-body">
<center>
<% if !current_user.following?(user) %>
<%= form_for(current_user.active_relationships.build) do |f| %>
<div><%= hidden_field_tag :followed_id, user.id %></div>
<%= f.submit "Follow", class: "btn btn-primary" %>
<% end %>
<% else %>
<%= form_for(current_user.active_relationships.find_by(followed_id: user.id),
html: { method: :delete }) do |f| %>
<%= f.submit "Unfollow", class: "btn" %>
<% end %>
<% end %>
</center>
</div>
</div>
我现在已经乱七八糟了,无法解决这个问题。任何帮助,将不胜感激。随意请求更多代码等。
答案 0 :(得分:2)
在较新版本的rails中,您应该使用以下代码:
内部控制器:
@user = User.find_by(username: username)
答案 1 :(得分:0)
在Rails 4之后,find_by_...
方法已弃用,因此User.find_by_username
不适用于Rails 4及更高版本。您应该能够使用:
User.find(id)
或
User.where(:username=> username)