2016-08-26 12 views
3

私はRuby on Railsの新機能です。Ruby on Railsアプリケーションで少し混乱します。私はこれらすべてのことをした。Ruby on Railsでレールを実行するためのフロー

routes.rbを

Recruitment::Application.routes.draw do 
    get 'hr/internal_employee_page', controller: 'hr', action: 'internal_employee_page' 
    get 'hr/permanent_consultant_page' => 'hr#permanent_consultant_page', as: :permanent_consultant_page 
end 

hr_controller.rb

class HrController < ApplicationController 

    def internal_employee_page 
    @employees = OfferLetter.all 
    # render :text => @employees.inspect   
    end 

    def employee_details 
    @employees = OfferLetter.all 
    end 
end 

_hr_page.html.erb

<%= render 'hr/dashboard'%> <%= render 'hr/internal_employee_page'%> 

_internal_employee_page.html.erb

_employee_details.html.erb

<% @employees.each do |emp| %> 
    <h3> Employee Name : <%= emp.full_name %> </h3> 
<% end %> 

は、その後、私はこのエラーを得た:私は、トレースをしたとき

undefined method `each' for nil:NilClass. 

、私はhr_controller.rbが実行されなかった発見しました。 hr_controller.rbのすべてをコメントアウトすると、同じエラーが発生します。だから、私が間違ってやっていることと解決策を教えてください。

答えて

0

Railsはコントローラメソッドと同じ名前のビューを探します。 internal_employee_page.html.erbファイルの名前からアンダースコアを削除します。部分文字列にアンダースコアを使用します。

<h3> Employee Name : <%= emp.full_name %> </h3> 

_employee_details.html.erb

<div id="job_details"> 
    <% @employees.each do |emp| %> 
    <%= render partial: "hr/employee_details", locals: {emp: emp} %> 
    <% end %> 
</div> 

internal_employee_page.html.erbこれは、レイアウトやパーシャルをレンダリングに関する the guideを読んで価値があるかもしれません。

nilエラーは、アクティブレコードコールOfferLetter.allが失敗していることを意味します。そのd/bテーブルをセットアップして、移行などを実行しましたか?そのコマンドをレールコンソールで実行し、何を得るかを見てください。

+0

はい、解決策があります。 RORの学習にはどの本を従わせるべきか教えてください。 –

+0

私の答えが助けになったら、「チェック」アイコンをクリックして「受け入れてください」。 Michael HartlのRuby on Railsチュートリアルのような多くのオンラインリソースがあります。私がリンクしているガイドも良いです。 – margo

+0

ありがとうございました。あなたはfacebookアカウントを持っていますか、facebook(/jamiit.khusvaha)で友達リクエストを送ってください。 –

関連する問題