Ruby on rails 嵌套表单未出现(简单表单)
我有一个名为Ruby on rails 嵌套表单未出现(简单表单),ruby-on-rails,ruby-on-rails-3,nested-forms,simple-form,Ruby On Rails,Ruby On Rails 3,Nested Forms,Simple Form,我有一个名为Page的模型和一个名为Medium的模型。媒体用于上传图像。这两个模型与丰富的HABTM关联有关 我希望能够通过我的页面编辑表单上传图像。然而,我得到了一个奇怪的结果。只有当页面已经有一个与之关联的图像时,我才会获取文件字段。这是什么原因造成的 这是我的页面模型: class Page < ActiveRecord::Base attr_accessible :content, :title, :url, :status, :excerpt, :media_attri
Page
的模型和一个名为Medium
的模型。媒体用于上传图像。这两个模型与丰富的HABTM关联有关
我希望能够通过我的页面编辑表单上传图像。然而,我得到了一个奇怪的结果。只有当页面已经有一个与之关联的图像时,我才会获取文件字段。这是什么原因造成的
这是我的页面模型:
class Page < ActiveRecord::Base
attr_accessible :content, :title, :url, :status, :excerpt, :media_attributes
belongs_to :users
has_many :page_medium
has_many :media, :through => :page_medium
accepts_nested_attributes_for :media
acts_as_url :title, :only_when_blank => true, :sync_url => true
acts_as_list
STATUS = %w[draft published]
def to_param
"#{url}" # or whatever you set :url_attribute to
end
validates :title, :status, :url, :presence => true
end
class页面:页面\u介质
接受媒体的\u嵌套\u属性\u
充当url:title,:仅当\u blank=>true,:sync\u url=>true时
作为列表
状态=%w[草稿已发布]
def至_参数
“#{url}”#或任何您设置的:url_属性
结束
验证:title、:status、:url、:presence=>true
结束
这是我的表格:
<%= simple_form_for @page, :html => { :class => 'page-form' } do |f| %>
<div class="span9">
<div class="row">
<%= f.input :title, input_html: { class: 'span6'}, wrapper_html: { class: 'span6'} %>
<%= f.input :url, input_html: { class: 'span3'}, wrapper_html: { class: 'span3'} %>
</div>
<div class="tabbable"> <!-- Only required for left/right tabs -->
<ul class="nav nav-tabs">
<li class="active"><a href="#tab1" data-toggle="tab">Content</a></li>
<li><a href="#tab2" data-toggle="tab">Excerpt</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1">
<%= f.input :content, label: false, input_html: { class: 'wysihtml5 span9' } %>
</div>
<div class="tab-pane" id="tab2">
<%= f.input :excerpt, label: false, input_html: { class: 'wysihtml5 span9 excerpt' }%>
</div>
</div>
</div>
</div>
<div class="span3">
<div class="well">
<fieldset>
<legend>Options</legend>
</fieldset>
<%= f.input :status , collection: Page::STATUS.map { |s| [s.humanize, s] }, prompt: '- Select page status -' %>
<div class="form-actions">
<%= f.button :submit, :class => 'btn btn-primary' %>
<%= link_to t('.cancel', :default => t("helpers.links.cancel")),
pages_path, :class => 'btn' %>
</div>
</div>
</div>
<div class="span9">
<%= f.simple_fields_for :media do |m| %>
<%= m.input :image, as: :file %>
<% end %>
</div>
<% end %>
<%= render :partial => 'display_images' %>
{:class=>'page form'}do | f |%>
选择权
“btn btn主节点”%>
t(“helpers.links.cancel”),
页面路径:class=>'btn'>
'显示图像'%>
如果您需要更多信息或代码,请发表评论。感谢所有提示、答案或建设性意见。:) 此代码:
<%= f.simple_fields_for :media do |m| %>
<%= m.input :image, as: :file %>
<% end %>
将只允许您更新已有的图像。
要添加更多图像,我建议您关注railscast的这一集: