0

私は Rails にまったく慣れていないので、ばかげた質問で申し訳ありません。

これは、フォームとそのネストされたフォームを生成するコードです。

<%= form_for @job do |form| %>          
    <div><%= form.label :department %><%= form.text_field :department %></div>
    <div><%= form.label :enabled %><%= form.check_box :enabled %></div>

    <!-- job description form -->
    <%= form.fields_for :job_descriptions do |subform| %>
        <div><%= subform.hidden_field :language %></div>
        <div><%= subform.object.language %></div>
        <div><%= subform.label "Job Name" %><%= subform.text_field :title %></div>
        <div><%= subform.label "Header" %><%= subform.text_field :short_text %></div>
        <div><%= subform.label "Content" %><%= subform.text_area :text %></div>
    <% end %>
    <!-- end of job description form -->
    <div><%= form.submit %></div>
<% end %>

これは、 :title:short_text:textなどのサブフォームのtext_fieldsを静的テキストとして表示したいindex.html.erbの一部ですが (この特定のケースでは:titleを試しています):

<% @jobs.each do |job| %>
    <li>
        <%= job.title %>
        <%= job.department %>
        <%= job.enabled %>
        <%= link_to 'Show', job_path(job) %>
        <%= link_to 'Delete', job_path(job), method: :delete, data: { confirm: 'Are you sure?' } %>
    </li>
<% end %>

私が得るエラーは次のとおりです。

undefined method `title' for #<Job:0x007fcdde2001a8>

私のjob.rbファイルは次のようになります。

class Job < ActiveRecord::Base
    has_many :job_descriptions, :dependent => :destroy
    accepts_nested_attributes_for :job_descriptions

    def self.languages
        [:de, :en]
    end
end

よろしくお願いいたします。

4

1 に答える 1

0
<%= form_for @job do |form| %>
  ...
  <%= form.fields_for :job_descriptions do |subform| %>
    <% if subform.object.active? %>
      <%= subform.text_field :title %>
    <% end %>
  <% end %>
  ...
<% end %>
于 2013-07-26T13:32:18.537 に答える