1
投稿にタグを追加しようとしばらくしている。 私はhttp://railscasts.com/episodes/258-token-fieldsをガイドとして使用しています。トークンフィールド - スタックレベルがあまりにも深い
ポストフォームには、イメージとタグがネストされています。 タグはライアンのエピソードの著者として扱われます。
新しい投稿を作成すると、スタックレベルが深すぎます。エラーが表示されます。
アイデア?あなたは再帰的に属性を変更している
モデル
class Post < ActiveRecord::Base
attr_accessible :title, :body, :keywords, :description, :post_images_attributes, :tags
has_and_belongs_to_many :tags
has_many :post_images, :dependent => :destroy
validates :title, :presence => true
validates :body, :presence => true
validates :keywords, :presence => true
validates :description, :presence => true
extend FriendlyId
friendly_id :title, use: :slugged
accepts_nested_attributes_for :post_images, :allow_destroy => true #, :reject_if => lambda { |a| a[:image].blank? }
accepts_nested_attributes_for :tags, :allow_destroy => true
attr_reader :tags
def tags=(ids)
self.tags = ids.split(",")
end
end
フォーム
<%= form_for @post, :html => {:multipart => true} do |f| %>
<div class="field">
<%= f.label :title %><br/>
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :body %><br/>
<%= f.text_area :body %>
</div>
<div class="field">
<%= f.label :keywords %><br/>
<%= f.text_field :keywords %>
</div>
<div class="field">
<%= f.label :description %><br/>
<%= f.text_field :description %>
</div>
<div class="field">
<%= f.label :tags %><br/>
<% if [email protected]? %>
<%= f.text_field :tags, "data-pre" => @post.tags.map(&:attributes).to_json %>
<% else %>
<%= f.text_field :tags %>
<% end %>
</div>
<%= f.fields_for :post_images do |builder| %>
<%= render "post_image_fields", :f => builder %>
<% end %>
<p><%= link_to_add_fields "Add Image", f, :post_images %></p>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
ログイン
Started POST "/posts" for 127.0.0.1 at 2012-03-29 15:43:57 +0200
Processing by PostsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"r/oWrpb4AOAwMrp+G6vOUmaQPFh32
NsabUa2h+O5KrY=", "post"=>{"title"=>"Test post", "body"=>"Test body", "keywords"
=>"key, words", "description"=>"description", "tags"=>"1", "post_images_attribut
es"=>{"0"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x392e410 @original_fi
lename="africa-web-l.jpg", @content_type="image/jpeg", @headers="Content-Disposi
tion: form-data; name=\"post[post_images_attributes][0][image]\"; filename=\"afr
ica-web-l.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:C:/Users/user
/AppData/Local/Temp/RackMultipart20120329-5772-dl0ix3>>, "is_main"=>"1", "_destr
oy"=>"false"}}}, "commit"=>"Create Post"}
Completed 500 Internal Server Error in 24ms
SystemStackError (stack level too deep):