params [: id] не работает - PullRequest
       10

params [: id] не работает

0 голосов
/ 12 февраля 2010

У меня две проблемы с этим кодом. Во-первых, независимо от того, какую опцию я выбираю в раскрывающемся меню, она не обновляется до базы данных при щелчке для отправки формы, но когда я обновляю страницу, она обновляет запись с идентификатором 1. Я просто хочу обновить запись, которую пользователь выбирает из выпадающего меню. Для этого конкретного раскрывающегося списка нет связанной модели. @user_requests - та же модель, что и user_request, только с записями, отфильтрованными по сайту пользователя. Таким образом, пользователь видит только записи для своего сайта. Тем не менее, им все равно нужно выбрать опцию, и эта опция должна быть захвачена params [: id], которой в настоящее время не является по какой-то причине:

Пользователь запрашивает контроллер:

def confirm   
x = current_user.contact.contactable
@user_requests = UserRequest.find(:all, :conditions => ["location_id = ?", x])
   if @user_request  = UserRequest.find(params[:id]) 
     update_confirm
    end
end

def update_confirm
@user_request.creator_id = current_user.contact.contactable
@user_request.save
end
end 

Форма подтверждения.erb:

<%  form_for(:user_request, :url => {:action => :confirm}) do %>
Request: collection_select(:user_request, :id, @user_requests, :id, :request_status_id) <br />
Password: <%= password_field_tag :password  %> <br />
<%= submit_tag 'Confirm Request' %>
<% end %>

маршруты: map.resources: user_requests,: member => {: verify =>: any}

Для этой части прямо здесь: if @user_request = UserRequest.find (params [: id]) Я хотел бы захватить вариант, выбранный пользователем. Какие-либо предложения? Спасибо.

Ответы [ 2 ]

3 голосов
/ 12 февраля 2010

Вам, вероятно, нужно изменить это на следующее:

if @user_request = UserRequest.find(params[:user_request][:id])
2 голосов
/ 12 февраля 2010

Это работает, потому что вы используете: id из оператора form_for, полученного из объекта: user_request.

collection_select(:user_request, :id, @user_requests, :id, :request_status_id)

возвращает <<select id = "user_request_id" name = 'user_request [id]' '>' ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...