我試圖做類似於通過ajax添加評論到博客文章,但我努力讓它工作。在我的項目中,用戶可以有許多活動,每個活動可以有很多項目。更新頁面與表單提交 - 嵌套路由
路由如下:
resources :users do
resources :activities do
resources :items
end
end
ActivitiesController.rb
#rest of code
def show
@activity = Activity.find(params[:id])
@new_item = @activity.items.build
@items = @activity.items.all.order('id DESC')
end
ItemsController.rb
#rest of code
def create
@activity = Activity.find(params[:activity_id])
@item = @activity.items.new(item_params)
respond_to do |format|
if @item.save
format.html {redirect_to user_activity_path(@activity.user_id, @activity)}
format.js
else
format.html {redirect_to :back}
end
end
end
一個ctivities/show.html.erb
<div class="row">
<div class="large-6 large-offset-3 columns">
<%= simple_form_for [@activity, @new_item], url: user_activity_items_path(@activity.user_id, @activity), remote: true do |f| %>
<%= f.input :name, required: false, :wrapper_html => { class: 'large-8 columns name' } %>
<%= f.input :cost, required: false, :wrapper_html => { class: 'large-4 columns cost' } %>
<%= f.submit "Add Item", class: 'large-4 columns button' %>
<% end %>
</div>
</div>
<div class="row">
<div class="large-6 large-offset-3 columns item-list">
<table>
<thead>
<tr>
<th>Name</th>
<th>Cost</th>
</tr>
</thead>
<tbody>
<% @items.each do |item| %>
<%= render 'item', item: item %>
<% end %>
</tbody>
</table>
</div>
</div>
活動/ _item.html.erb
<tr>
<td><%= item.name %></td>
<td><%= item.cost %></td>
</tr>
項目/ create.js.erb
#currently empty
使用out ajax獲取存儲所有數據的正確性嗎? – SSR
不確定你的意思?如果你問是否沒有Ajax的工作,答案是肯定的 – Robbo
你有沒有使用rails ujs? – SSR