Это компромисс; У вас могут быть немного некрасивые URL, но очень простые контроллеры / модели. Или вы можете иметь хорошие URL, но немного уродливые контроллеры / модели (для пользовательского анализа параметров).
Например, вы можете добавить этот метод для вашей модели пользователя:
class User < ActiveRecord::Base
#class method
def self.new_from_params(params)
[:action, :method, :controller].each{|m| params.delete(m)}
# you might need to do more stuff nere - like removing additional params, etc
return new(params)
end
end
Теперь на вашем контроллере вы можете сделать это:
class UsersController < ApplicationController
def create
#handles nice and ugly urls
if(params[:user]) @user=User.new(params[:user])
else @user = User.new_from_params(params)
end
if(@user.valid?)
... etc
end
end
end
Это будет хорошо обрабатывать ваши сообщения, а также сообщения из форм.
У меня обычно такое поведение, когда мне нужно, чтобы мои клиенты «копировали и вставляли» URL-адреса (то есть при поиске, который они могут отправить по электронной почте).