, как по запросу я отредактированы, включая attr_accessor
Рельсы. Я просто летаю, надеюсь, что ты это получишь. вам нужно обязательно читать больше представлений о рельсах и его концепции.
у вас есть рельсы-модель, позволяет называть его Animal
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 является помощником рельсы, чтобы создать форму, связанную с @animal (который является новым для животных). Вы проходите | 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
тем, что вы получите материал
DonT 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
Надеюсь, это дало вам первое представление о рельсах?!
Это очень плохой подход и никогда не должен выполняться в рельсах! сообщите нам, зачем вам это нужно, и мы находим лучшее решение! –
btw: form_for object открывает блок с именем «f» в качестве идентификатора объекта. объект является объектом модели, а не контроллера –
Ну, я хотел бы иметь временную переменную в контроллере, чтобы сделать некоторые вещи, которые получат данные из формы, и я не настолько квалифицирован в рельсах поэтому я не мог придумать другой подход, поэтому я придумал это. – lmatejic