(Rails 3.2 newbie,App是twitter)
我希望我理解路线,但我仍然没有。我已经设置了一个系统,用户可以通过手动提交用户名来关注其他用户:
@relationship = User.find_by_username(params[:username])
if @relationship
if current_user.following? @relationship
current_user.unfollow @relationship
else
current_user.follow @relationship
end
else
flash[:notice] = "User with username #{params[:username]} is not found"
end
这吐出了这个:
undefined method `model_name' for NilClass:Class
直到我将@relationship改为:关系之后,这才真正奏效:
<%= form_for :relationship do |f| %>
<%= f.text_field :username, placheholder: "username" %>
</div>
<br/>
<%= f.submit "Add/Subtract" %>
<% end %>
现在,当我点击“添加/减去”时,错误信息(“用户名为...的用户”)会一直弹出,但它会改为:
没有路线匹配[POST]“/好友”
所有这些都在用户模型下。
我认为有些事情是非常错误的。
编辑:路线看起来像这样..(ribbit = tweets)
Ribbitapp::Application.routes.draw do
resources :ribbits
resources :relationships
resources :sessions
resources :users
get 'logout', to: 'sessions#destroy', as: 'logout'
#get 'buddies', to: 'users#buddies', as: 'buddies'
match 'buddies', to: 'users#buddies', as: 'buddies'
root to: 'users#new'
答案 0 :(得分:0)
match 'buddies', to: 'users#buddies', as: 'buddies'
在您的路线中应该是这样的