3

これが私のコードの構造です。私は各クレポンにビデオを添付しており、私が知る限り、それをアップロードすることに成功しています. 問題は、構造が保存された後に変換する必要がある場合です。新しく更新されたネストされた属性 (lesson_controller を参照) にアクセスしたいのですが、その方法がわかりません。

どうもありがとう!

橋脚。

レッスン.rb

class Lesson < ActiveRecord::Base
    has_one :user
    has_many :comments, :dependent => :destroy
    has_many :cresponses, :dependent => :destroy
    acts_as_commentable

    accepts_nested_attributes_for :comments, :reject_if => lambda { |a| a[:body].blank? },         :allow_destroy => true
    accepts_nested_attributes_for :cresponses

ここに cresponse.rb があります

class Cresponse < ActiveRecord::Base
   belongs_to :lesson
   attr_accessible :media, :accepted, :description, :user_id


   # NOTE: Comments belong to a user
   belongs_to :user, :polymorphic => true

   # Paperclip
   require 'paperclip'
   has_attached_file :media, 
   :url => "/system/:lesson_id/:class/:basename.:extension",
   :path => ":rails_root/public/system/:lesson_id/:class/:basename.:extension"

ここに私のHTMLビューがあります

<% @cresponse = @lesson.cresponses.build %>

<%= form_for @lesson, :html => { :multipart => true } do |f| %>

<td class="list_discussion" colspan="2">
    <div class="field">
     <%= f.fields_for :cresponses, @cresponse, :url => @cresponse, :html => { :multipart => true } do |builder| %>
                Upload : <%= builder.file_field :media %><br />
                Description : <%= builder.text_field :description %>
                <%= builder.hidden_field :user_id , :value => current_user.id %>

    <% end %>
    </div>
</td>

ここにlesson_controller.rbがあります - 更新

def update
    @lesson = Lesson.find(params[:id])

    respond_to do |format|
  if @lesson.update_attributes(params[:lesson])

    **if @lesson.cresponses.** <-- not sure how to find the cresponse that I need to convert
      puts("Gotta convert this")
    end
4

1 に答える 1

1

私は自分の質問に答えるべきだと思います..

基本的にlesson_controller.rb用

params[:lesson][:cresponses_attributes].values.each do |cr|
@cresponse_user_id = cr[:user_id]
@cresponse_description = cr[:description]
if cr[:media] 
    .... and so on
于 2012-06-08T10:20:48.740 に答える