Ruby on rails 未定义的方法rails form_

Ruby on rails 未定义的方法rails form_,ruby-on-rails,ruby,model,controller,undefined,Ruby On Rails,Ruby,Model,Controller,Undefined,在用户\上获取未定义的方法错误 app/controllers/user\u-sponsorships\u-controller.rb:7:in'new' 这是new.html.erb: <% if @event %> <%= form_for @user_sponsorship, method: :post do |form| %> <div class="mike"> <%= form.hidden_field :event_id, value:

在用户\上获取未定义的方法错误

app/controllers/user\u-sponsorships\u-controller.rb:7:in'new'

这是new.html.erb:

<% if @event %>
<%= form_for @user_sponsorship, method: :post do |form|  %>
<div class="mike">
<%= form.hidden_field :event_id, value: @event %>
<%= submit_tag "Yes, sponsor event", class: 'btn btn-success' %>
<%= link_to "Cancel", event_path(@event), class: 'btn btn-default'%>
</div>
<% end %>
<% end %>

这是控制器:

class UserSponsorshipsController < ApplicationController
 before_filter :authenticate_user!, only: [:new]

def new
    if params[:event_id]
        @event = Event.find(params[:event_id])
        @user_sponsorship = current_user.user_sponsorship.new(event: @event)
        else
        flash[:error] = "Event required"
     end
end
end
class UserSponsorshipsController
以下是模型:

class UserSponsorship < ActiveRecord::Base
belongs_to :user
belongs_to :event

attr_accessible :user, :event
end
class

正如你所知道的,我对Rails相当陌生。提前感谢您的帮助

您的错误很可能是由于这一行造成的

@user_sponsorship = current_user.user_sponsorship.new(event: @event)
用户(最有可能)有很多用户赞助,所以应该

@user_sponsorship = current_user.user_sponsorships.new(event: @event)

使用复数形式,也应该是协会名称(如果你遵循rails惯例)。

哦,哇,我真傻,忘了用复数了。谢谢你指出这一点,它现在正在工作。