Ruby on rails 无响应提交标签

Ruby on rails 无响应提交标签,ruby-on-rails,controller,submit,Ruby On Rails,Controller,Submit,我在games/show.html.erb类中编写了一个submit_标记,如下所示: <% form_tag game_path, :method => 'submit' do %> <div class="actions"><%= submit_tag "Interested in trading", :name => 'confirm' %></div> <% end %> 现在显示页面显示良好,但当

我在games/show.html.erb类中编写了一个submit_标记,如下所示:

 <% form_tag game_path, :method => 'submit' do %>
      <div class="actions"><%= submit_tag "Interested in trading", :name => 'confirm' %></div>
 <% end %>

现在显示页面显示良好,但当我点击
submit_标签时,它什么也不做,我说的什么都不做,意味着它死了,你点击它,它什么都不做。只是个傀儡。你知道我的控制器逻辑有什么问题吗?

问题是你的视图,而不是你的控制器

提交标签必须在表单中。当你点击它时,他们会提交表单——如果没有包含表单,提交标签是完全无用的


如果您只需要一个指向某个地方的按钮,请尝试签出:它将创建一个提交标记和一个指向您指定的任何操作的表单。

我明白了。因此,上述声明将被封装在一个表单中。这会是一个简单的。。。。。或者还有比这更重要的逻辑吗?嘿,我已经更新了我上面写的文章(不确定它是否正确,因为我正在继续我的知识),但现在按钮已经完全消失了。是的,这不是正确的语法。您需要:
。确保在那里得到等号,否则任何输出都不会出现在视图中。
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