作爲請求我編輯,包括attr_accessor
Rails的方式。我只是飛過去,希望你能得到它。你肯定需要閱讀更多關於軌道及其概念的介紹。
你有軌的模型,讓我們把它叫做動物
class Animal < ActiveRecord::Base
attr_accessor :non_saved_variable
end
這是具有數據庫表,讓我們在這個表中,我們存儲的比賽,姓名和年齡說。
現在我們需要一個控制器,創建/編輯/更新/刪除動物
class AnimalController < ActionController::Base
def new
# this creates a new animal with blank values
@animal = Animal.new
end
end
現在你需要進入你的routes.rb,創造動物
resources :animal
這個路線將爲動物的每個動作創建所有(平靜)路線。
現在你需要有你的模板來呈現形式
的form_for是Rails幫手,創建表單,與@animal(這是一個新的動物)相關聯。你傳遞| f |成塊,所以用F你可以訪問形式
=form_for @animal do |f|
那麼你可以去爲每個字段需要調用另一個軌道幫手 您還可以訪問attr_accessors。
=f.text_field :race
=f.text_field :name
=f.text_field :age
=f.text_field :non_saved_variable
由你得到的東西
不fortget f.submit
因爲你的表單需要一個提交按鈕
,如果你現在點擊此按鈕,表格將被張貼到鋼軌的創建方法。所以你需要把它帶入你的控制器
def create
# create a new animal with the values sended by the form
@animal = Animal.new params[:animal]
# here you can access the attr_accessor
@animal.do_something if @animal.non_saved_variable == "1337"
if @animal.save
# your animal was saved. you can now redirect or do whatever you want
else
#couldnt be saved, maybe validations have been wrong
#render the same form again
render action: :new
end
end
我希望你能第一次瞭解rails?!
這是一個非常非常糟糕的做法,絕不應該在rails中完成!請告訴我們爲什麼你需要這個,我們找到更好的解決方案! –
btw:form_for對象以「f」作爲對象的標識符打開一個塊。對象是模型的對象,而不是控制器 –
嗯,我想在控制器中有一種臨時變量來完成一些可以從窗體接收數據的東西,而且我不擅長導軌所以我不能想出另一種方法,這就是爲什麼我想出了這個。 – lmatejic