0

助けが要る。アプリは ruby​​ 1.8.7 および rails 3.0.11 で実行されています。Rails のバージョンを 3.1.11 に更新した後、新しい記事ページに非常に奇妙なエラーが表示されました: http://cl.ly/image/1o0P050d2q41

ただし、コントローラーには次のものがあります。

class ArticlesController < ApplicationController
  def new
    @article = Article.new
  end

通常の form_for @article が表示されます。Railsの更新前のように、編集アクションがうまく機能するのは奇妙なことです..

問題の原因とそれを修正する方法について何か考えはありますか?

編集: Article.rb

require 'acts_as_list'
class Article < ActiveRecord::Base
  attr_accessible :name, :body, :category_id, :preview, :status, :position, :publish_on_main
  acts_as_commentable
  acts_as_list


  belongs_to :category, :counter_cache => true
  belongs_to :user, :counter_cache => true
  has_many :relative_articles, :dependent => :destroy
  has_many :relatives, :through => :relative_articles

  validates_presence_of :name, :body, :category_id, :preview
  validates_length_of :name, :within => 10..100
  validates_length_of :preview, :within => 100..2000
  validates_length_of :body, :within => 500..50000

  scope :published, where(:aasm_status => :publics)
  scope :draft, where(:aasm_status=> [:draft, :deleted])
  scope :deleted, where(:aasm_status => :deleted)
  scope :not_deleted, where(:aasm_status => [:publics, :draft])


  def relative_ids
    self.relatives.published.map(&:id)
  end

  def to_param
    "#{id}-#{name.parameterize}"
  end


  define_index do
    indexes name
    indexes preview
    indexes body
    has category_id
    where "aasm_status = 'publics'"

    set_property :delta => true
  end

それがコンソールに表示されるものです:

Started GET "/articles/new" for 127.0.0.1 at Sun May 26 18:47:43 +0400 2013
  Processing by ArticlesController#new as HTML
Completed 500 Internal Server Error in 270ms

ArgumentError (wrong number of arguments (1 for 0)):


Rendered /Users/iriskin/.rvm/gems/ree-1.8.7-2012.02@mednadom/gems/actionpack-3.1.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.9ms)
Rendered /Users/iriskin/.rvm/gems/ree-1.8.7-2012.02@mednadom/gems/actionpack-3.1.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.7ms)
Rendered /Users/iriskin/.rvm/gems/ree-1.8.7-2012.02@mednadom/gems/actionpack-3.1.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (3.4ms)

2* new.html.erb を編集:

<%= form_for @article do |f| %>
  <%= render "shared/error_messages", :target => @article %>
  <% if admin? %>
    <p>
      <%= f.label :user_id %>
      <%= f.select :user_id,  User.authors_and_admins.collect {|p| [ p.username, p.id ] } %>
    </p>
  <% end %>
  <p>
    <%= f.label :category_id %><%= mark_required(@article, :category_id) %><br/>
    <%= f.select :category_id,  Category.all.collect {|p| [ p.name, p.id ] }, { :include_blank => true } %>
  </p>
  <p>
    <%= f.label :name %><%= mark_required(@article, :name) %><br/>
    <%= f.text_field :name %>
  </p>
  <p>
    <%= f.label :preview %><%= mark_required(@article, :preview) %><br/>
    <%= f.text_area :preview, :size => "70x6" %>
  </p>
  <p>
    <%= f.label :body %><%= mark_required(@article, :body) %><br/>
    <%= f.text_area :body, :class => "mceEditor", :size => "100x20" %>
  </p>
  <% if admin? %>
    <p>
      <%= f.label :publish_on_main %>
      <%= f.check_box :publish_on_main %>
    </p>
  <% end %>
  <%= f.submit %>
<% end %>
4

0 に答える 0