【发布时间】:2017-03-22 14:03:33
【问题描述】:
我有一个_form 用于new 和edit 用于@Giveaway 对象。在这个表格中,我有一个随机获胜者的字段。
我想通过使用<%= button_to "Randomly Pick Winner!", {:action => 'choose_winner'}, :method => :get %> 调用方法giveaways#random_winner 来填充此字段,但在加载/giveaways/new 时出现此错误No route matches {:action=>"choose_winner", :controller=>"giveaways"}。
这是我的控制器:
def choose_winner
random_winner = SubscriberUser.where(user_id: current_user.id).pluck(:subscriber_id).sample(1)
session[:random_winner] = random_winner
redirect_to :back
end
这是我尝试过的路线。我还不太擅长非脚手架路线:
resources :giveaways do
member do
get 'choose_winner' => 'giveaways#choose_winner'
#tried get :choose_winner, as: :choose_winner
#tried get 'new/choose_winner'
#tried get 'choose_winner'
#tried get 'choose_winner', to: 'giveaways#choose_winner', as: 'choose_winner'
end
end
问题 -- 为什么我在路由中定义了控制器和动作后页面没有加载?当我运行该路线时,我是否必须重新加载页面......有没有更好的方法来获取这些数据?
【问题讨论】:
标签: ruby-on-rails rest routes render