CarrierWave的rails图像上传器的控制器不能被“static_pages #home'

时间:2015-06-13 04:17:21

标签: ruby-on-rails routes carrierwave controllers

为了能够在我的rails应用程序主页上管理一些示例图像,我使用CarrierWave创建了一个图像上传器。

我遇到的问题是我的image_uploader控制器无法访问root 'static_pages#home'的主页。有没有办法可以让我的(主要)静态静态#pouse#home'?访问上传者的控制器?

现在我能让它工作的唯一方法是将我的主页索引从/app/views/static_pages/home.html.erb移动到/app/views/covers/index.html.erb并更改路线,但这似乎是一个糟糕的解决方法。

感谢您的帮助。

更新

正如@Udaykumardas在下面建议的那样,我创建了一个包含

app/models/static_page.rb文件
class Cover < ActiveRecord::Base
  mount_uploader :photo, PhotoUploader # Tells rails to use this uploader for this model.
end

但现在我收到以下错误:

  

StaticPagesController#home中的NoMethodError   未定义的方法`每个&#39;为零:NilClass

引用<% @covers.each do |cover| %>

这是我的路线信息以防万一

  get 'covers/index'
  get 'covers/new'
  get 'covers/create'
  get 'covers/destroy'

  get 'password_resets/new'
  get 'password_resets/edit'

  get 'account_activations/edit'

  get 'sessions/new' 

  root                'static_pages#home'
  get    'contact' => 'static_pages#contact'
  get    'signup'  => 'users#new'
  get    'login'   => 'sessions#new'
  post   'login'   => 'sessions#create'
  delete 'logout'  => 'sessions#destroy'

  resources :users
  resources :account_activations, only: [:edit]
  resources :password_resets,     only: [:new, :create, :edit, :update]
  resources :microposts,          only: [:create, :destroy]

  resources :covers, only: [:index, :new, :create, :destroy]

我不确定底线是否需要更改为resources :static_pages, only: [:index, :new, :create, :destroy]。我试过这个,它导致了如下不同的错误:

  

StaticPagesController#home中的NameError   未定义的局部变量或方法`new_cover_path&#39;

再次感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

mount_uploader :image, ImageUploader文件中使用StaticPage.rb