我還是新的軌道和運行成(從我的角度至少)一個相當奇怪的問題: 有一個形式和途徑,並在控制器的方法的視圖。不知何故,該方法被直接調用而不是渲染視圖,等待輸入並將其傳遞給方法。路線跳過視圖,並調用方法馬上
這就是它有點樣子:
控制器
class Some::ThisController < ApplicationController
def method_a
variable_a = params[:variable_a].to_time
variable_b = #other stuff
@variable_c = # do stuff with the variable_a & variable_b
end
視圖(method_a.rb)
= form_tag this_method_a_path do
= text_field_tag :variable_a
= text_field_tag :variable_a
= submit_tag 'Apply'
路線(some.rb)
The::Application.routes.draw do
namespace :some do
# leave all the unimportant stuff
match this/method_a => this#method_a, :as => :method_a
那麼我的問題是什麼? 的觀點並沒有被渲染 - 我只得到:對於無 未定義的方法`TO_TIME」:NilClass 當我重新命名視圖渲染精細的方法。
我想要什麼? 要渲染的視圖,所以我可以填寫表單並提交它,然後讓方法返回@variable_c中的任何內容。
我無法弄清楚什麼不順心。也許是太晚了今天......
我知道它就是這樣的!謝謝。 只是出於好奇,因爲它似乎是爲其他人工作。在方法本身中有沒有辦法做到這一點? – tomr
這不是一個好的做法,但是,你必須首先檢查是否存在params。你的路線只需要「匹配」,儘管它可以接受任何HTTP動詞。 – DiegoSalazar