Rails : .new에 대한 잘못된 인수 개수 (0은 1)

킬리안

Review 개체를 만들려고 할 때이 오류가 발생합니다.

ArgumentError in ReviewsController#create

wrong number of arguments (1 for 0)

app/controllers/reviews_controller.rb:17:in `new'
app/controllers/reviews_controller.rb:17:in `create'

내가 뭘 잘못하고 있는지 이해가 안 돼? 다른 개체를 만들 수 있지만이 오류가 발생하면 내가 뭘하든 상관 없습니다. 나는 주장하지 않으려 고 노력하지만 여전히 하나가 있다고 생각합니다.

내 모델 Review:

# -*- encoding : utf-8 -*-
class Review < ActiveRecord::Base

  attr_accessible :global_validation_date, :hr_comment, :hr_validate, :hr_validator, :manager_comment, :manager_validate, :manager_validation_date, :manager_validator, :owner_satisfaction, :owner_validate, :owner_validation_date, :send, :user_id

  belongs_to :user
  has_many :review_projects, dependent: :destroy

end

내 컨트롤러 ReviewsController:

# -*- encoding : utf-8 -*-
class ReviewsController < ApplicationController

  before_filter :authenticate_user!
  before_filter :check_permissions, only: :create

  def index
    @user = User.find(params[:user_id])
    @reviews = @user.reviews
  end

  def create
    @user = User.find(params[:user_id])
    @reviews = @user.reviews
    if @reviews.empty? || check_last_validate

      @review = Review.new   # HERE IS MY ERROR

      if @review.save
        render 'index', notice: "Review successfully created"
      else
        render 'index', notice: "An error occured on saving, please try again"
      end
    else
      render 'index', alert: "You have to validate previous review before create a new one."
    end

    redirect_to user_reviews_path
  end

  private

  def check_permissions
    render_access_forbidden unless current_user == User.find(params[:user_id])
  end

  def check_last_validate
    if [email protected]?
      return (@reviews.last.hr_validate || @reviews.last.manager_validate)
    else
      return false
    end
  end

end

나는 모두 같은 질문을 읽었지만 아무것도 작동하지 않습니다. 오타에주의하지만 실수 한 것 같지는 않습니다.

내 개체를 만드는 세 가지 방법을 시도했습니다 Review.

@review = Review.new
@review.user_id = current_user.id
@review.hr_validator = ((current_user.hr_id.nil?) ? current_user.id : current_user.hr_id )
@review.manager_validator = ((current_user.manager_id.nil?) ? current_user.id : current_user.manager_id )
@review.hr_validate = false
@review.manager_validate = false
@review.owner_validate = false
@review.hr_comment = ""
@review.manager_comment = ""
@review.owner_satisfaction = nil
@review.send = false

@review = Review.new(
  user_id: current_user.id,
  hr_validator: ((current_user.hr_id.nil?) ? current_user.id : current_user.hr_id ),
  manager_validator: ((current_user.manager_id.nil?) ? current_user.id : current_user.manager_id ),
  hr_validate: false,
  manager_validate: false,
  owner_validate: false,
  hr_comment: "",
  manager_comment: "",
  owner_satisfaction: nil,
  send: false )

@user.reviews.create!(
  user_id: current_user.id,
  hr_validator: ((current_user.hr_id.nil?) ? current_user.id : current_user.hr_id ),
  manager_validator: ((current_user.manager_id.nil?) ? current_user.id : current_user.manager_id ),
  hr_validate: false,
  manager_validate: false,
  owner_validate: false,
  hr_comment: "",
  manager_comment: "",
  owner_satisfaction: nil,
  send: false )

마지막 하나는 다음을 제외하고 동일한 오류를 제공합니다.

wrong number of arguments (2 for 0)

내 루비 버전은 1.9.3이고 내 레일 버전은 3.2.13입니다.

감사.

편집하다 :

내 레일 콘솔에서이 코드를 시도 할 때 :

current_user = User.first # as you are inside rails console you wont have current_user available to you
@review = Review.new(user_id: current_user.id,
                    hr_validator: ((current_user.hr_id.nil?) ? current_user.id : current_user.hr_id ),
                    manager_validator: ((current_user.manager_id.nil?) ? current_user.id : current_user.manager_id ),
                    hr_validate: false,
                    manager_validate: false,
                    owner_validate: false,
                    hr_comment: "",
                    manager_comment: "",
                    owner_satisfaction: nil,
                    send: false )
@review.save

이 오류가 발생합니다.

ArgumentError: wrong number of arguments (2 for 0)
    from /Users/killian/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/attribute_methods/read.rb:71:in `__temp__'
    from /Users/killian/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/attribute_assignment.rb:85:in `block in assign_attributes'
    from /Users/killian/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/attribute_assignment.rb:78:in `each'
    from /Users/killian/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/attribute_assignment.rb:78:in `assign_attributes'
    from /Users/killian/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.13/lib/active_record/base.rb:498:in `initialize'
    from (irb):31:in `new'
    from (irb):31
    from /Users/killian/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start'
    from /Users/killian/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start'
    from /Users/killian/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
킬리안

Ok 문제를 찾았습니다 ... 분명히 오류는 속성에 의해 발생했습니다 send. 루비의 모든 예약어를 확인했는데 "보내기"가 어디에도 나오지 않아서 정말 놀랐습니다.

따라서 이름을 바꾸면 모든 것이 작동합니다. 아무튼 도와 주셔서 감사합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails : 잘못된 인수 개수 (1은 0)

분류에서Dev

Rails : 잘못된 인수 개수 (0은 1)

분류에서Dev

Rails 잘못된 인수 개수 (0은 1), SubscribeController # update의 ArgumentError

분류에서Dev

잘못된 인수 개수 (0에 대해 1) (소셜 보석)

분류에서Dev

잘못된 인수 개수 (1은 0)

분류에서Dev

Rails ActiveCampaign gem-잘못된 인수 개수 (1에 2 개)

분류에서Dev

Ruby on Rails & Mongomapper : 잘못된 인수 개수 (1에 2 개)

분류에서Dev

Ruby on Rails : 잘못된 인수 개수 (주어진 0, 예상 1)

분류에서Dev

IF에 대한 잘못된 인수 개수

분류에서Dev

오류 : 메시지의 ArgumentError # new 잘못된 인수 개수 (1에 대해 2)

분류에서Dev

Rails : 잘못된 인수 개수 (1이 주어졌고 0이 예상 됨)

분류에서Dev

Ransack 범위에서 잘못된 인수 개수 (0 개, 1 개 예상)

분류에서Dev

Rails : 잘못된 인수 개수 (2 개, 1 개 예상) MongoID

분류에서Dev

활성 관리자 : 잘못된 인수 개수 (1은 0)

분류에서Dev

꼭두각시 루비 잘못된 인수 개수 (0은 1)

분류에서Dev

`name ': 잘못된 인수 개수 (0은 1) (ArgumentError)

분류에서Dev

has_many 종속 : '잘못된 인수 개수 (1에 대해 0)'를 던지는 파괴

분류에서Dev

유권자 부분에서 잘못된 인수 수 (1에 대해 0)

분류에서Dev

업데이트 방법에 대한 잘못된 인수 개수 (2 개에 1 개)

분류에서Dev

++ /-작업에 대한 잘못된 인수

분류에서Dev

패턴에 대한 잘못된 인수 개수

분류에서Dev

패턴에 대한 잘못된 인수 개수

분류에서Dev

잘못된 인수 개수 (2 개에 1 개)

분류에서Dev

잘못된 인수 개수 (1 개에 2 개) RoR 오류

분류에서Dev

Rails에서 검색 쿼리에 대해 "잘못된 인수 수 (1, 예상 0)"오류가 발생하는 이유는 무엇입니까?

분류에서Dev

rails 4-잘못된 인수 개수 (1에 2 개)-stylesheet_link_tag 및 javascript_include_tag

분류에서Dev

ActiveRecord.find 1에 대해 잘못된 인수 수 2

분류에서Dev

git push heroku master시 잘못된 인수 개수 (0 for 1) (ArgumentError)

분류에서Dev

ArgumentError : afer_save를 사용할 때 잘못된 인수 개수 (0은 1)

Related 관련 기사

  1. 1

    Rails : 잘못된 인수 개수 (1은 0)

  2. 2

    Rails : 잘못된 인수 개수 (0은 1)

  3. 3

    Rails 잘못된 인수 개수 (0은 1), SubscribeController # update의 ArgumentError

  4. 4

    잘못된 인수 개수 (0에 대해 1) (소셜 보석)

  5. 5

    잘못된 인수 개수 (1은 0)

  6. 6

    Rails ActiveCampaign gem-잘못된 인수 개수 (1에 2 개)

  7. 7

    Ruby on Rails & Mongomapper : 잘못된 인수 개수 (1에 2 개)

  8. 8

    Ruby on Rails : 잘못된 인수 개수 (주어진 0, 예상 1)

  9. 9

    IF에 대한 잘못된 인수 개수

  10. 10

    오류 : 메시지의 ArgumentError # new 잘못된 인수 개수 (1에 대해 2)

  11. 11

    Rails : 잘못된 인수 개수 (1이 주어졌고 0이 예상 됨)

  12. 12

    Ransack 범위에서 잘못된 인수 개수 (0 개, 1 개 예상)

  13. 13

    Rails : 잘못된 인수 개수 (2 개, 1 개 예상) MongoID

  14. 14

    활성 관리자 : 잘못된 인수 개수 (1은 0)

  15. 15

    꼭두각시 루비 잘못된 인수 개수 (0은 1)

  16. 16

    `name ': 잘못된 인수 개수 (0은 1) (ArgumentError)

  17. 17

    has_many 종속 : '잘못된 인수 개수 (1에 대해 0)'를 던지는 파괴

  18. 18

    유권자 부분에서 잘못된 인수 수 (1에 대해 0)

  19. 19

    업데이트 방법에 대한 잘못된 인수 개수 (2 개에 1 개)

  20. 20

    ++ /-작업에 대한 잘못된 인수

  21. 21

    패턴에 대한 잘못된 인수 개수

  22. 22

    패턴에 대한 잘못된 인수 개수

  23. 23

    잘못된 인수 개수 (2 개에 1 개)

  24. 24

    잘못된 인수 개수 (1 개에 2 개) RoR 오류

  25. 25

    Rails에서 검색 쿼리에 대해 "잘못된 인수 수 (1, 예상 0)"오류가 발생하는 이유는 무엇입니까?

  26. 26

    rails 4-잘못된 인수 개수 (1에 2 개)-stylesheet_link_tag 및 javascript_include_tag

  27. 27

    ActiveRecord.find 1에 대해 잘못된 인수 수 2

  28. 28

    git push heroku master시 잘못된 인수 개수 (0 for 1) (ArgumentError)

  29. 29

    ArgumentError : afer_save를 사용할 때 잘못된 인수 개수 (0은 1)

뜨겁다태그

보관