1

Ryan Bates railscast チュートリアルを使用してこれを作成しました。しかし、私は問題に直面しています。私は彼の例を T に追従させようとしましたが、うまくいきませんでした。

最初の部分は、プロジェクト テーブルにアンケート属性へのアクセス権を付与することです。

class Project < ActiveRecord::Base
 attr_accessible :pid, :name, :qheader, :questionaires_attributes
 has_many :questionaires
 accepts_nested_attributes_for :questionaires, allow_destroy: true

 pid_regex = /\d+/

 validates :pid, presence: true, format: { with: pid_regex}, uniqueness: true
 validates :name, presence: true
 # validates :qheader, presence: true

end

Questionaire モデルについても同じことを行います。アンケートのスペルが間違っているという事実は無視してください。スペルが同じであることを確認するためにどこでもチェックしました。

class Questionaire < ActiveRecord::Base
 attr_accessible :content, :project_id
 belongs_to :project
end

次に、ビュー/プロジェクト用に new.html.erb を作成しました

<%= form_for @project do |f| %>
 <%= render 'shared/error_msgs' %>
 <div class="field">
  <%= f.label :pid %><br />
  <%= f.text_field :pid %>
 </div>
 <div class="field">
  <%= f.label :name %><br />
  <%= f.text_field :name %>
 </div>
 <%= f.fields_for :questionaires do |builder| %>
   <%= render "questions", f: builder %>
 <% end %>

 <div class="actions">
  <%= f.submit "Add New Project" %>
 </div>
<% end %>

ライアン・ベイツによると、私が見た限りではうまくいきます。

 <%= f.fields_for :questionaires do |builder| %>

は複数である必要がありますが、複数の場合、レンダリングされたパーシャルにあるフィールドセットは消えますが、:questionaires が単数の場合は再び表示されます。しかし、送信すると、保護された属性に一括割り当てできないことがわかります:アンケート.

誰でもこれを修正する方法を教えてもらえますか。

4

0 に答える 0