Rails 运行 : 在 /new 和 /edit _form 中获取路由
Rails run :get route within /new and /edit _form
我有一个 _form
用于 new
和 edit
用于 @Giveaway
对象。在这个表格中,我有一个随机获胜者的字段。
我想通过使用 <%= button_to "Randomly Pick Winner!", {:action => 'choose_winner'}, :method => :get %>
调用方法 giveaways#random_winner
来填充此字段,但在加载 /giveaways/new
.[=22= 时出现此错误 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
问题 -- 为什么我在路由中定义了控制器和动作后页面没有加载?当我执行 运行 该路线时,我是否必须重新加载页面...是否有更好的方法来获取此数据?
您的 routes.rb 已关闭
resources :giveaways do
member do
get :choose_winner
end
end
然后我会使用 Rails 路由助手,这样您就不必担心自己设置 action/controller。
<%= button_to "Randomly Pick Winner", choose_winner_giveaway_path(@giveaway), method: :get %>
我有一个 _form
用于 new
和 edit
用于 @Giveaway
对象。在这个表格中,我有一个随机获胜者的字段。
我想通过使用 <%= button_to "Randomly Pick Winner!", {:action => 'choose_winner'}, :method => :get %>
调用方法 giveaways#random_winner
来填充此字段,但在加载 /giveaways/new
.[=22= 时出现此错误 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
问题 -- 为什么我在路由中定义了控制器和动作后页面没有加载?当我执行 运行 该路线时,我是否必须重新加载页面...是否有更好的方法来获取此数据?
您的 routes.rb 已关闭
resources :giveaways do
member do
get :choose_winner
end
end
然后我会使用 Rails 路由助手,这样您就不必担心自己设置 action/controller。
<%= button_to "Randomly Pick Winner", choose_winner_giveaway_path(@giveaway), method: :get %>