如何在事件索引中正确嵌套事件图片,以便在发布event_pictures时可以查看它们?
这是我的模型
class EventPicture < ApplicationRecord
belongs_to :event
end
我正在表单中使用字段
<%= f.fields_for :event_picture, @event.event_picture do |ff| %>
<p>
<%= ff.label :name %><br>
<%= ff.text_field :name %>
</p>
<p>
<%=ff.label :url %>
<%=ff.text_field :url %>
</p>
<% end %>
这是我的事件视图(索引):
<% if user_signed_in? %>
<div class = "admincreate">
<% if user_signed_in? %>
<p> <button type="button" class="btn btn-primary"><%= link_to 'New event' , new_event_path(@events)%> </button> </p>
</div>
<% end %>
<% @events.each do |event| %>
<% if user_signed_in? %>
<div class =".btn-group-xs">
<tr>
<td> <button type="button" class="btn btn-primary"><%= link_to 'Show', event_path(event) %> </button> </td>
<td> <button type="button" class="btn btn-primary"><%= link_to 'Edit', edit_event_path(event) %> </button> </td>
<td> <button type="button" class="btn btn-primary"><%= link_to 'Delete',event_path(event),
method: :delete,
data: { confirm: 'Are you sure?'} %> </button></td>
</div>
</tr>
<% end %>
<% end %>
</table>
<% end %>
<table>
<% @events.each do |event| %>
<tr>
<td class = "content-overlap-right">
<h1 class = "eventtitle"> <h1><%= event.title%> </h1>
<p class = "eventlink"><b> <%= event.url %></b></p>
<p class = "eventbody"><%= event.body%> </p>
</td>
</tr>
<%end%>
</table>
这是我的控制器
def event_params
params.require(:event).permit(:title, :url, :body, event_picture_attributes:
[:id, :url, :name])
end
我试过 1) event_pictures。URL(在我的@events.each do
中),我已经尝试过每个事件图片。
也许我错过了一个小细节或已经偏离了,但我对一般显示嵌套属性有点困惑。
感谢您的任何帮助!
编辑:我的最终意图是,当事件被删除时,关联的event_picture将被删除 - 以及让事件图片与每个发布的事件一起显示。我假设涉及一个@event_picture.each do
,但它看起来不是很简单(因为当然,它必须是相关的事件图片)。
如果有人回答,我也会尽力向其他人说明答案。
编辑:
这是我的路线.rb
resources :events do
resources :event_pictures, shallow: true
end
要显示事件的图片:
<%= image_tag event.event_picture.url ... %>
要销毁图片,请在事件模型中:
has_one :event_picture, :dependent => :destroy
首先,如果您希望在销毁事件对象时也销毁嵌套资源,请将:_delete
添加到event_picture_attributes
中。
为了使嵌套资源正常工作,请使用 rails 表单生成器声明路由并创建表单。
按照这些教程进行操作,如果您遇到任何问题,请告诉我。
http://guides.rubyonrails.org/routing.html#nested-resources
http://guides.rubyonrails.org/form_helpers.html#nested-forms