2016-12-15 3 views
0

Ищете способ взять в params из url в форму.Несколько параметров в url для формирования

localhost:3000/person/param[1],param[2],param[3]...,param[n]

Если найдено, он будет тянуть нужную страницу с нужным идентификатором/брусками.

Если нет, он перенаправляет и создает новую страницу и вставляет параметры в нужное поле.

Пример:

локальный: 3000/человек/1234, Том, Tom_is_a_cool_guy

< 1234 не найден поэтому новая форма создается>

-new form-

ID: 1234

Название: Том

Текст: Том крутой парень

[Submit Button]

В настоящее время у меня он работает, когда новый идентификатор вводится в конце, но это займет в 1 param в URL.

# GET /device_infos/1 
# GET /device_infos/1.json 
    def show 
Rails.logger.info "inside persons_controller show" 
if @person.nil? 
    redirect_to action: "new", id: params[:id] 
    return 
end 
# GET /persons/new 
def new 
    @person = Person.new 
    @person.slug = params[:id] 
end 

Im очень новый для рельсов, поэтому любая помощь будет принята с благодарностью! Благодаря!

+2

То есть на самом деле не как URL-адрес должны работать в Rails. Если вы хотите запросить несколько значений, вы должны использовать строку запроса, что-то вроде строк «localhost: 3000/person/1234? Name = Tom & text = Tom + is + a + cool + guy» – meagar

+0

Спасибо, что помогло меня в правильном направлении. – Peter

ответ

0

Фигурного это, наряду с форматом meagar о:

localhost:3000/person/1234?name=Tom&text=Tom+is+a+cool+guy 

я добавил к контроллеру:

# GET /device_infos/1.json 
def show 
    Rails.logger.info "inside persons_controller show" 
    if @person.nil? 
    redirect_to action: "new", id: params[:id], name: params[:name], text: params[:text] 
    return 
end 
# GET /persons/new 
def new 
    @person = Person.new 
    @person.slug = params[:id] 
    @person.name = params[:name] 
    @person.text = params[:text] 
end 
Смежные вопросы