按钮不调用Ruby中的控制器

时间:2018-09-25 14:25:33

标签: ruby-on-rails

我有一个屏幕,用户可以在其中为自己的帐户选择不同的计划。像这样:

#plans
 <% Plan.all.order(:amount).each do |plan| %>
     <%= render 'shared/plan_detail', {plan: plan, button_text: 'Choose this' } %>
 <% end %>

 #plan_detail
 <div class="plan-details">
    <header class= <%= plan.css %> >
      <h3><%= plan.name %></h3>
      <small><%= plan.visibility %></small>      
      <p><%= plan.card_description.html_safe %></p>
      <span class="plan-price"><sup>$</sup><%= plan.amount.to_s %></span>
    </header>
    <article>
     <%= plan.features_description.html_safe %>
      <%= link_to button_text,  {:controller => "accounts", :action => "update_plan", :plan => plan.id }, title: button_text, :class=>"btn btn-md btn-block btn-outline-green dialog-open" %>
    </article>
 </div><!-- end plan details -->

在我的控制器中,我有:

#accounts_controller.rb
def update_plan
  @plan = Plan.find(params[:plan])
  current_user.plan = @plan
  current_user.save
end

我的路线是这样的

  get '/account/plans', to: 'accounts#plans', as: :update_plan
  put '/account/plans', to: 'accounts#update_plan'

但是我单击按钮,没有任何反应。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

这是一个远景,但是看到您的链接有dialog-open,如果有一些Javascript阻止您的链接正常工作,我也不会感到惊讶。为了进一步调试,我会

a)检查浏览器的Javascript控制台是否有错误

b)删除dialog-open类以查看会发生什么情况