2016-11-04 7 views
0

私のレールアプリケーションに問題があります。基本的に私は人々が仕事を申請できるシンプルなウェブサイトを作ろうとしています。ユーザーが特定の求人情報を表示するために、求人ページ(求人情報のページで構成されている)上で「表示」をクリックすると、求人情報が追加された新しいページに移ります。 (私はこれを候補者ページへのリンクなどのより効率的な方法にするつもりですが、候補者がコメントできる単純なテキストボックスとして保持しています) )。候補者がコメントを提出しようとするときに問題が発生し、上記のエラーが発生します。多くの関係が設定されている、つまりジョブには多くのリクエストがあり、リクエストには多数の候補者があります。などです。私は以前このメッセージを受けていました。変数を修正するだけのケースでした名前の間違いは、私はしばらくの間これを見てきました、それは友人が読んだ証拠を持っていて、私はまだエラーを見つけることができません。RequestsControllerのNameError#未定義のローカル変数またはメソッドのための `request_params '#<RequestsController:0x5635d28>

RequestsController

class RequestsController < ApplicationController 
before_action :authorise 
#set_request, only: [:show, :edit, :update, :destroy] 

    def create 
     @job = Job.find params[:job_id] 
     @request = @job.requests.new(request_params) <- Error highlights this line 
     @request.candidate_id = @current_candidate.id  #sets the user_id FK 
     @request.save #saves the @comment 
        # object to the comments table 
     respond_to do |format| 
      format.html{redirect_to @job} 
     end   
    end 

    private 
    def comment_params 
    #This is the method ehich whitelists the data fields from the format 
     params.require(:request).permit(:content, :job_id, :candidate_id) 
    end 
    end 

要求モデル

class Request < ActiveRecord::Base 
belongs_to :job, dependent: :destroy 
has_many :candidates 
end 

候補モデル

class Candidate < ActiveRecord::Base 
has_secure_password 
validates_uniqueness_of:can_email 

belongs_to :request 

validates :can_name, presence: true 
validates :can_surname, presence: true 
validates :college, presence: true 
validates :can_email, presence: true 
validates :address, presence: true 
validates :experience, presence: true 
validates :password_digest, presence: true 
validates :college_year, numericality: { only_integer: true } 

end 

仕事モデル

class Job < ActiveRecord::Base 
    belongs_to :sector 

    has_many :requests, dependent: :destroy 

    validates :name, presence: true 
    validates :employer, presence: true 
    validates :sector, presence: true 
    validates :experience_req, presence: true 
    validates :job_info, presence: true 
    end 

答えて

2
def comment_params 

def request_params 
+0

[OK]をする必要があり、あなたが最初でした。ただ、今回のD –

+0

:P – Ursus

+0

スポットに!なぜこれが今、それ以下の行に別のエラーを作り出したのか "NoMethodError in RequestsController#create、 未定義メソッド' candidate_id = 'for# "これは関係に問題があると感じましたか? –

関連する問題