обновления базы данных с использованием пользовательских маршрутов - PullRequest
1 голос
/ 12 февраля 2010

У меня есть собственный маршрут:

map.resources :user_requests, :member => {:confirm => :any}

Для этого в моем контроллере запросов есть два метода:

def confirm   
x = current_user.contact.contactable
@requests = UserRequest.find(:all, :conditions => ["location_id = ?", x]) #The results from this display in dropdown list.
end

def update_confirm
UserRequest.transaction do
@request = @requests.find params[:id] #Here I just want to grab the option they choose from dropdown.
@request.created_at = Time.now
if @request.save
x = @request.student_id
y = @request.id
books = Book.find(:all, :conditions => ["book.location_id = ? && book.request_id = ?", x, y])
books.each do |book|
  book.book_state_id = 3
  book.save
end
end
end
end

И представление подтвердите.erb:

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

Обновление происходит в действии update_confirm, поэтому мой вопрос заключается в том, что после того, как пользователь выберет опцию из действия подтверждения, когда он щелкнет, чтобы отправить форму, я хотел бы запустить действие update_confirm со страницы подтверждения. Какие-либо предложения? Благодаря.

1 Ответ

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

Легко, просто проверьте метод запроса:

def confirm
  if request.post?
    update_confirm
   end
  # ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...