我在我的games / show.html.erb课程中写了一个submit_tag,结果如下:
<% form_tag game_path, :method => 'submit' do %>
<div class="actions"><%= submit_tag "Interested in trading", :name => 'confirm' %></div>
<% end %>
在games_controller
方法下的show
我有以下内容:
def show
@game = Game.find(params[:id])
if params['confirm']
respond_to do |format|
user = @game.user
email = user.email
g = GameTrade.game_interest(user)
g.deliver
format.html { redirect_to root_url }
format.json { render json: @game }
end
elsif
respond_to do |format|
format.html
end
end
end
现在显示页面显示正常,但是当我点击submit_tag
时,它什么都没做,我什么都没说,我点击它已经死了你点击它并且它没有任何动作。只是一个假人。我的控制器逻辑有什么问题吗?
答案 0 :(得分:1)
问题在于你的观点,而不是你的控制者。
提交标签必须在表单内。当你点击它时,他们提交表单 - 没有包含表单,提交标签完全没用。
如果您只想要一个指向某个地方的按钮,请尝试签出button_to:它会创建一个提交标记和一个指向您指定的操作的表单。