2016-10-29 9 views
1

이것은 내 컨트롤러입니다.잘못된 인수 수 (주어진 4, 예상 2)

class DogsController < ApplicationController 


def create 
@dog=current_admin.dogs.build(dog_params) 
if @dog.save 
    redirect_to current_admin 
else 
    render 'dogs/new' 
end 
end 

private 

def dog_params 
params.require(:dog).permit(:name, :content , :age , :personality , :breed ,:picture, :admin_id) 
end 
end 

그리고 이것은 내 견해입니다.

<%=form_for(@dog, html: {multipart: true}) do |f| %> 

    <%= render 'shared/dog_error_messages' , f: @dog %> 

    <div class="field"> 
     <%= f.label :name , class:"form-label" %><br /> 
     <%= f.text_field :name, autofocus: true %> 
    </div> 
    <div class="field"> 
     <%= f.label :content , class:"form-label" %><br /> 
     <%= f.text_area :content , cols: 70 , rows: 20 , placeholder: '犬ちゃんの特徴' %> 
    </div> 
    <div class="field"> 
     <%= f.label :age , class:"form-label" %><br /> 
     <%= f.number_field :age , min: 0 , max: 15 , step: 1 %> 
    </div> 
    <div class="field"> 
     <%= f.label :personality , class:"form-label" %><br /> 
     <%= f.select :personality , %w[オス メス] , { include_blank: '選択して下さい'} , class: 'pb' %> 
    </div> 
    <div class="field"> 
     <%= f.label :breed , class:"form-label" %><br /> 
     <%= f.select :breed , %w[ゴールデンレトリーバー トイプードル] , { include_blank: '選択して下さい'} %> 
    </div> 
    <div class="field"> 
     <%= f.label :picture , class:"form-label" %><br /> 
     <%= f.file_field :picture , class:'dog-form-picture' , accept: 'image/jpeg,image/gif,image/png' %> 
    </div> 
    <div class="actions"> 
     <%= f.submit '追加する' , class:' btn btn-primary btn-lg' %> 
    </div> 

    <% end %> 

    </div> 
    </div> 
</div> 

그리고 이것은 내 모델입니다.

class Dog < ActiveRecord::Base 
     belongs_to :admin 
     has_many :likes , dependent: :destroy 
     default_scope -> {order(created_at: :desc)} 
     mount_uploader :picture , PictureUploader 

     validates :name , presence: true 
     validates :content , presence: true , length: {maximum:300} 
     validates :age , presence: true 
     validates :personality , presence: true 
     validates :breed , presence: true 
     validates :admin_id , presence: true 
     validates :picture , presence: true 
     end 

저는 Ruby on Rails에도 새로운 기능을 제공합니다. 내가 갖는 오류 : 나는 내 코드는 매개 변수를 전달하지 않습니다

def create 
    @dog=current_admin.dogs.build(dog_params) 

에 오류가 왜

ArgumentError in DogsController#create wrong number of arguments (given 4, expected 2) 

을 가르쳐주세요.

+0

'@admin = current_admin'과 같은 것을 시도해주세요. @dog = Dog.create (dog_params)''@dog = @ admin.dogs << @ dog' – angkiki

+0

'current_admin'의 구현을 추가 할 수 있습니까? –

답변

0

대신 @dog = current_admin.dogs.new(dog_params)을 시도하십시오.

+0

감사합니다. 당신! 나는 진전을 이룰 수있다! –

+0

내 대답이 도움이된다면 동의 할 수 있습니다. –