Ruby on Rails错误“未定义的方法”

时间:2016-10-21 22:33:22

标签: ruby-on-rails heroku undefined

我正在设计一个简单的新闻文章应用程序。它在开发中完美运行。我正试图发布到Heroku。每当我尝试进入“新”路径,这会导致我创建一个新的“帖子”时,我会在日志中收到此错误:

ActionView::Template::Error (undefined method `level' for #<Post:0x007f624eca42e0>):

“level”是我的“帖子”表格中的一栏,用于跟踪相关文章是否会突出显示。它按照预期的方式在开发中工作。 不确定发生了什么。我试过运行rake db:migrate几次。

这是完整的heroku日志:

2016-10-21T22:16:02.717948+00:00 app[web.1]: D, [2016-10-21T22:16:02.717866 #3] DEBUG -- : [a4723811-33bd-4c11-b62f-7c3401f77048]   User Load (1.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 1], ["LIMIT", 1]]
 2016-10-21T22:16:02.719426+00:00 app[web.1]: I, [2016-10-21T22:16:02.719357 #3]  INFO -- : [a4723811-33bd-4c11-b62f-7c3401f77048]   Rendering posts/new.html.erb within layouts/application
2016-10-21T22:16:02.728995+00:00 app[web.1]: I, [2016-10-21T22:16:02.728898 #3]  INFO -- : [a4723811-33bd-4c11-b62f-7c3401f77048]   Rendered posts/_form.html.erb (9.2ms)
2016-10-21T22:16:02.729133+00:00 app[web.1]: I, [2016-10-21T22:16:02.729070 #3]  INFO -- : [a4723811-33bd-4c11-b62f-7c3401f77048]   Rendered posts/new.html.erb within layouts/application (9.6ms)
2016-10-21T22:16:02.729427+00:00 app[web.1]: I, [2016-10-21T22:16:02.729362 #3]  INFO -- : [a4723811-33bd-4c11-b62f-7c3401f77048] Completed 500 Internal Server Error in 14ms (ActiveRecord: 1.4ms)
2016-10-21T22:16:02.730972+00:00 app[web.1]: F, [2016-10-21T22:16:02.730889 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]   
2016-10-21T22:16:02.731067+00:00 app[web.1]: F, [2016-10-21T22:16:02.730980 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048] ActionView::Template::Error (undefined method `level' for #<Post:0x007f624eca42e0>):
2016-10-21T22:16:02.731308+00:00 app[web.1]: F, [2016-10-21T22:16:02.731223 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]     11:     <%= f.input :description, class: 'form-control' %>
2016-10-21T22:16:02.731351+00:00 app[web.1]: F, [2016-10-21T22:16:02.731295 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]     12:   </div>
2016-10-21T22:16:02.731420+00:00 app[web.1]: F, [2016-10-21T22:16:02.731356 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]     13:    <div class="field">
2016-10-21T22:16:02.731476+00:00 app[web.1]: F, [2016-10-21T22:16:02.731421 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]     14:     <%= f.input :level, class: 'form-control' %>
 2016-10-21T22:16:02.731528+00:00 app[web.1]: F, [2016-10-21T22:16:02.731477 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]     15:   </div>
2016-10-21T22:16:02.731585+00:00 app[web.1]: F, [2016-10-21T22:16:02.731530 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]     16:   <div class="actions">
2016-10-21T22:16:02.731652+00:00 app[web.1]: F, [2016-10-21T22:16:02.731585 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]     17:     <%= f.label :photo %> 
2016-10-21T22:16:02.731705+00:00 app[web.1]: F, [2016-10-21T22:16:02.731648 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048]   
2016-10-21T22:16:02.731774+00:00 app[web.1]: F, [2016-10-21T22:16:02.731726 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048] app/views/posts/_form.html.erb:14:in `block in_app_views_posts__form_html_erb___305077094715289752_70030112058800'
2016-10-21T22:16:02.731841+00:00 app[web.1]: F, [2016-10-21T22:16:02.731794 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048] app/views/posts/_form.html.erb:1:in `_app_views_posts__form_html_erb___305077094715289752_70030112058800'
 2016-10-21T22:16:02.731917+00:00 app[web.1]: F, [2016-10-21T22:16:02.731859 #3] FATAL -- : [a4723811-33bd-4c11-b62f-7c3401f77048] app/views/posts/new.html.erb:5:in `_app_views_posts_new_html_erb___2217823637252593740_70030112076460'

这是我的posts_controller:

class PostsController < ApplicationController
before_action :set_post, only: [:show, :edit, :update, :destroy]
before_action :authenticate_user!, only: [:edit, :update, :destroy, :new, :create]

# GET /posts
# GET /posts.json
def index
@posts = Post.most_recent
end

# GET /posts/1
# GET /posts/1.json
def show
end

# GET /posts/new
def new
@post = Post.new
end

# GET /posts/1/edit
def edit
end

# POST /posts
# POST /posts.json
def create
  @post = Post.new(post_params)

  respond_to do |format|
    if @post.save
      format.html { redirect_to post_path(@post), notice: 'Post was successfully created.' }
      format.json { render :show, status: :created, location: @post }
    else
      format.html { render :new }
      format.json { render json: @post.errors, status: :unprocessable_entity }
    end
  end
end

# PATCH/PUT /posts/1
# PATCH/PUT /posts/1.json
def update
respond_to do |format|
  if @post.update(post_params)
    format.html { redirect_to @post, notice: 'Post was successfully updated.' }
    format.json { render :show, status: :ok, location: @post }
  else
    format.html { render :edit }
    format.json { render json: @post.errors, status: :unprocessable_entity }
  end
end
end

# DELETE /posts/1
# DELETE /posts/1.json
def destroy
@post.destroy
respond_to do |format|
  format.html { redirect_to posts_url, notice: 'Post was successfully destroyed.' }
  format.json { head :no_content }
end
end

private
# Use callbacks to share common setup or constraints between actions.
def set_post
  @post = Post.friendly.find(params[:id])
end

# Never trust parameters from the scary internet, only allow the white list through.
def post_params
  params.require(:post).permit(:title, :content, :description, :photo, :level)
end
end

这是我的表单,它解决了问题(我正在使用simple_form gem):

<%= simple_form_for @post, :html => {:multipart => true} do |f| %>

 <%= f.error_notification %>
 <div class="field">
  <%= f.input :title, class: 'form-control' %>
 </div>
 <div class="field">
  <%= f.input :content, class: 'form-control' %>
 </div>
 <div class="field">
  <%= f.input :description, class: 'form-control' %>
 </div>
 <div class="field">
  <%= f.input :level, class: 'form-control' %>
 </div>
 <div class="actions">
  <%= f.label :photo %> 
 <%= f.file_field :photo %>
 <br />
 </div> 
 <div class="actions">
  <%= f.button :submit, :class => 'btn btn-success' %>
 </div> 
 <% end %>

我也在使用paperclip,fyi。谁能看到这里发生了什么?我很难过。谢谢!

0 个答案:

没有答案