3

JobsとQuestionsの2つのモデルがあります。ジョブには多くの質問があり、質問はジョブに属します。モデル内のリソースとルートを設定しました。質問#indexページで質問コントローラーのShowメソッドにlink_toしようとすると問題が発生します。私のレーキルートでは、パスはjob_question_pathであり、必要な2つの:idは:job_idと:idである必要があると言われているので、次のことを試しました。

<td><%= link_to 'Show', job_question_path(@job, question) %></td>

エラーが発生しました:

No route matches {:action=>"show", :controller=>"questions", :job_id=>nil, :id=>#<Question id: 1, job_id: 1, question1: "sfsdfssfs", question2: "sfsdfs", question3: "sfsdf", question4: "sfsdfsf", question5: "sfsfsfs", created_at: "2011-06-21 03:25:12", updated_at: "2011-06-21 03:25:12">}

私は他の複数のコンボを試しましたが、何も機能していないようです。

No route matches {:action=>"show", :controller=>"questions", :job_id=>nil } 

またはその組み合わせ。

私が得られない部分は、URL / jobs / 1 / questions / 1を入れることができ、それが私をショーページに連れて行くということです、それで私は私のquestions#showメソッドが大丈夫だと思います。私のコードの残りの部分については、以下を参照してください。

質問#インデックスビュー

<% @questions.each do |question| %>
 <tr>
  <td><%= question.question1 %></td>
  <td><%= question.question2 %></td>
  <td><%= question.question3 %></td>
  <td><%= question.question4 %></td>
  <td><%= question.question5 %></td>
  <td><%= link_to 'Show', job_question_path(@job, question) %></td>
</tr>

<%終了%>

質問コントローラー

def index
 @questions = Question.all

 respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @questions }
 end
end

def show
  @job = Job.find(params[:job_id])
  @question = @job.questions.find(params[:id])

 respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @question }
 end
end

モデル

class Job < ActiveRecord::Base
 has_many :questions

class Question < ActiveRecord::Base
  belongs_to :job

Routes.rb

 root :to => "pages#home"

 resources :jobs do
  resources :questions
 end

 get "pages/home"
 get "pages/about"
 get "pages/contact"

私のレーキルートについては、このhttps://gist.github.com/1032734を参照してください。

事前に助けてくれてありがとう、私はしばらくこれにいて、解決策を理解することができません。さらに情報が必要な場合はお知らせください。

4

1 に答える 1

3

そうかもしれませんか?

質問#インデックスビュー

<% @questions.each do |question| %>
 <tr>
  <td><%= question.question1 %></td>
  <td><%= question.question2 %></td>
  <td><%= question.question3 %></td>
  <td><%= question.question4 %></td>
  <td><%= question.question5 %></td>
  <%= link_to 'Show', job_question_path(question.job_id, question.id) %>
</tr>

それは機能しなければなりません。または、質問テーブルの「job_id」フィールドではありませんか?

于 2011-06-21T06:23:18.100 に答える