这里的总轨道数为n008。
我正在编写一个应用程序,我正在销售" space"从1个用户到另一个用户。
所以我的部分_spaces.html.erb中有一个空格数组,工作正常。我不希望每次都使用没有做任何事情的按钮打印出列表项,而是希望它能够捕获'单击按钮的数据,所以我可以在我的模型中使用它。
我尝试过使用form_for(无法找到对象)和form_tag,以及传统的HTML表单(导致安全问题),但我似乎无法解决问题。也许我错了?
<% Array(@spaces).each do |x| %>
<% next if x.capacity == nil || x.capacity <= 0 %>
<ul class = "all-list">
<li><p>Address: <%= x.address %></p></li>
<li><p>Capacity: <%= x.capacity %></p></li>
<li><p>Garbage Day: <%= x.garbaje_day %></p></li>
<button type="button" id="buy-spot">Buy the spot</button>
</ul>
<% end %>
这是我的Spaces控制器
class SpacesController < ApplicationController
def index
@spaces = Space.all
@user = current_user
if request.xhr?
@spaces.near([params[:latitude], params[:logitude]])
render partial: 'spaces', layout: false
else
@spaces = Space.all
end
end
def new
@user = current_user
@space = Space.new
end
def create
@space = Space.new(space_params)
#puts @space
#debug(space_params)
@space.user_id = params[:user_id]
if @space.save
redirect_to user_path(current_user) #need to go to the last space
else
render :new
end
end
def update
@user = User.find(params[:user_id])
# update capacity user
@space = @user.spaces.find(params[:id])
@space.capacity = params[:space][:capacity].to_i
if @space.save
# redirect_to user_path(current_user)
redirect_to user_spaces_path
end
end
任何帮助表示感谢。
答案 0 :(得分:0)
您可以使用button_to
:
<% @spaces.each do |x| %>
...
<%= button_to 'Buy the spot', buy_space_path(x) %>
<% end %>
同样在路线中:
resources :spaces do
post :buy, on: :member
end
在控制器中:
def buy
@space = Space.find(params[:id])
# then goes some logic
redirect_to user_spaces_path
end