2015-02-10 2 views
3

Я новичок в рельсах. Я использую рельсы 3.2.20 и драгоценный камень несущей для загрузки изображений в двух формах, а именно ShorttermCourse и OrientationCourse. Это работает отлично. Всякий раз, когда я пытаюсь отобразить загруженное изображение в ShorttermCourse с помощью:Rails carrierwave: undefined method `image_url 'для # <ShorttermCourse: 0x007f9de0204ad8>

<%= image_tag(@shortterm_course.image_url(:thumb).to_s, :class => @shortterm_course.image? ? "img-responsive img-thumbnail" : nil) %> 

Это дает следующее сообщение об ошибке:

неопределенный метод `IMAGE_URL» для #ShorttermCourse: 0x007f9de0204ad8

но подобный код отображает изображение для OrientationCourse.

Когда я перезапускаю сервер рельсов, он отображает изображение для ShorttermCourse, но затем он перестает работать на OrientationCourse, давая ошибку неопределенного метода image_url. Вот файлы для ShorttermCourse:

show.html.erb:

<!-- row -->    
<div class="row"> 
    <div class="col-lg-12"> 
     <h1 class="page-header">Individual Record</h1> 
    </div> 
    <!-- /.col-lg-12 --> 
    <p id="notice"><%= notice %></p> 
</div> 
<!-- /.row --> 
<!-- row --> 
<div class="row"> 
    <div class="col-lg-12"> 
     <%= image_tag(@shortterm_course.image_url(:thumb).to_s, :class => @shortterm_course.image? ? "img-responsive img-thumbnail" : nil) %> 
      <div class="table-responsive"> 
         <table class="table table-striped table-hover">   
          <tr> 
           <th>ID</th> 
           <th>Name</th> 
           <th>Gender</th> 
           <th>Religion</th> 
           <th>Category</th> 
           <th>Marital status</th> 
           <th>Email</th> 
           <th>Stream</th> 
           <th>College</th> 
          </tr>  
          <tr class="success"> 
           <td><%= @shortterm_course.id %></td> 
           <td><%= @shortterm_course.name %></td> 
           <td><%= @shortterm_course.gender %></td> 
           <td><%= @shortterm_course.religion %></td> 
           <td><%= @shortterm_course.category %></td> 
           <td><%= @shortterm_course.marital_status %></td> 
           <td><%= @shortterm_course.email %></td> 
           <td><%= @shortterm_course.stream %></td> 
           <td><%= @shortterm_course.college %></td> 
          </tr>  
         </table> 
         <table class="table table-striped table-hover">   
          <tr>  
           <th>University</th> 
           <th>City</th> 
           <th>District</th> 
           <th>State</th> 
           <th>Position</th> 
           <th>Payscale</th> 
           <th>Subject</th> 
           <th>Std Code</th> 
           <th>Landline</th> 
          </tr> 
          <tr class="success"> 
           <td><%= @shortterm_course.university %></td> 
           <td><%= @shortterm_course.city %></td> 
           <td><%= @shortterm_course.district %></td> 
           <td><%= @shortterm_course.state %></td> 
           <td><%= @shortterm_course.position %></td> 
           <td><%= @shortterm_course.payscale %></td> 
           <td><%= @shortterm_course.subject %></td> 
           <td><%= @shortterm_course.std_code %></td> 
           <td><%= @shortterm_course.landline %></td> 
          </tr> 
         </table>     
         <table class="table table-striped table-hover">   
          <tr>  
           <th>Mobile</th> 
           <th>University pin</th> 
           <th>Dob</th> 
           <th>Date of joining</th> 
           <th>Preferred date1</th> 
           <th>Preferred date2</th> 
           <th>Residential address</th> 
           <th>Pin</th> 
           <th>Phd</th> 
          </tr> 
          <tr class="success">  
           <td><%= @shortterm_course.mobile %></td> 
           <td><%= @shortterm_course.university_pin %></td> 
           <td><%= @shortterm_course.dob %></td> 
           <td><%= @shortterm_course.date_of_joining %></td> 
           <td><%= @shortterm_course.pref_date1 %></td> 
           <td><%= @shortterm_course.pref_date2 %></td> 
           <td><%= @shortterm_course.res_address %></td> 
           <td><%= @shortterm_course.pin %></td> 
           <td><%= @shortterm_course.phd %></td> 
          </tr>   
         </table> 
       </div> 
       <!-- /.table-responsive -->  
      <%= link_to 'Edit', edit_shortterm_course_path(@shortterm_course), :class => 'btn btn-default' %> 
      <%= link_to 'Delete', shortterm_course_path, method: :delete, :class => 'btn btn-default', data: { confirm: 'Are you sure?' } %> 
      <%= link_to 'Back', shortterm_record_path, :class => 'btn btn-default' %> 
     </div> 
     <!-- /.col-lg-12 -->  

</div> 
<!-- /. row --> 

shortterm_courses_controller.rb

class ShorttermCoursesController < ApplicationController 
    before_filter :authenticate_admin!, :only => [:show, :edit, :update, :destroy, :record] 
    layout "adminDashboard", :only => [:show, :edit, :update, :destroy, :record] 

    # GET /shortterm_courses 
    # GET /shortterm_courses.json 
    def index 
    raise ActionController::RoutingError.new('Not Found')  
    end 
    # GET /shortterm_courses/1 
    # GET /shortterm_courses/1.json 
    def show 
    @shortterm_course = ShorttermCourse.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @shortterm_course } 
    end 
    end 

    #List of record 
    def record 
    @shortterm_courses = Kaminari.paginate_array(ShorttermCourse.all).page(params[:page]).per(4) 
    respond_to do |format| 
     format.html 
     format.json { render json: @shortterm_courses } 
    end 
    end 

    # GET /shortterm_courses/new 
    # GET /shortterm_courses/new.json 
    def new 
    @shortterm_course = ShorttermCourse.new 

    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @shortterm_course } 
    end 
    end 

    # GET /shortterm_courses/1/edit 
    def edit 
    @shortterm_course = ShorttermCourse.find(params[:id]) 
    end 

    # POST /shortterm_courses 
    # POST /shortterm_courses.json 
    def create 
    @shortterm_course = ShorttermCourse.new(params[:shortterm_course]) 

    respond_to do |format| 
     if @shortterm_course.save 
     format.html { redirect_to registered_path } 
     format.json { render json: @shortterm_course, status: :created, location: @shortterm_course } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @shortterm_course.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # PUT /shortterm_courses/1 
    # PUT /shortterm_courses/1.json 
    def update 
    @shortterm_course = ShorttermCourse.find(params[:id]) 

    respond_to do |format| 
     if @shortterm_course.update_attributes(params[:shortterm_course]) 
     format.html { redirect_to @shortterm_course, notice: 'Shortterm course was successfully updated.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @shortterm_course.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /shortterm_courses/1 
    # DELETE /shortterm_courses/1.json 
    def destroy 
    @shortterm_course = ShorttermCourse.find(params[:id]) 
    @shortterm_course.destroy 

    respond_to do |format| 
     format.html { redirect_to shortterm_record_path} 
     format.json { head :no_content } 
    end 
    end 
end 

shortterm_course.rb

class ShorttermCourse < ActiveRecord::Base 
    belongs_to :course 
    attr_accessible :category, :city, :college, :subject, :date_of_joining, :district, :dob, :email, :gender, :landline, :marital_status, :mobile, :name, :payscale, :phd, :pin, :position, :pref_date1, :pref_date2, :religion, :res_address, :state, :stream, :university, :university_pin, :std_code, :alternate_email, :image, :course_id 
    mount_uploader :image, ImageUploader 
end 

Модель OrientationCourse похожа на модель ShorttermCourse, поэтому код похож на OrientationCourse.

Я не могу понять, в чем проблема. Я уже рассмотрел следующий вопрос: Carrierwave NoMethodError: undefined method `image_url' for Item, но моя проблема в другом.

Итак, пожалуйста, помогите мне с этим. Спасибо в Advance!

ответ

0

Это должно быть @shortterm_course.image.url(:thumb)

+0

К сожалению, это не работает either.Now он выдает ошибку: неопределенный метод 'URL» для ноль: NilClass –

Смежные вопросы