Ruby on rails 未定义的方法rails form_
在用户\上获取未定义的方法错误 app/controllers/user\u-sponsorships\u-controller.rb:7:in'new' 这是new.html.erb: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:
<% 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惯例)。哦,哇,我真傻,忘了用复数了。谢谢你指出这一点,它现在正在工作。