这应该是超级简单的,但我看不出我做错了什么。 “&new;'中的表单上传页面收到错误。
Upload.rb
class Event < ActiveRecord::Base
has_many :uploads
end
Event.rb
class UploadsController < ApplicationController
before_action :set_event
def new
@upload = @event.uploads.create
end
private
def set_event
@event = Event.find(params[:event_id])
end
end
uploads_controller.rb
Rails.application.routes.draw do
devise_for :users
root 'pages#home'
resources :events do
resources :coupons
resources :uploads
member do
post :check
end
end
Routes.rb
<%= form_for @upload do |f| %>
<%= f.text_field :name %>
<% end %>
views / uploads / new.html.erb(示例)
STARThello how are you doing today?END
当我导航到新的&#39;页面,我收到以下错误:
未定义的方法`upload_path&#39;对于#&lt;#:0x007fb8709229f0&gt;
为什么我无法添加与Event相关联的新上传?我知道我错过了一些非常简单的东西,但是我不能把手指放在它上面。
答案 0 :(得分:2)
由于uploads
嵌套在events
中,您可以获得上传路径的网址,如下所示:
/events/1/uploads/new
在这种情况下,您必须在form_for
方法中指定@event,如下所示:
<%= form_for [@event, @upload] do |f| %>
答案 1 :(得分:0)
或者只是
<%= form_for @event.upload do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end%>