Один из способов - использовать метод хеширования delete
, чтобы удалить ключ :link
и вручную установить атрибут ссылки.
Как и после проверки, если объект - valid?
, вы можете сказать params.delete(:link)
не раньше, чем принять его в переменную для ex.@uri = params[:link]['url']
.
Код может выглядеть следующим образом:
def create
url = params[:link]['url'].split('facebook.com/').last
@link = Link.new(params[:link])
if @link.valid?
@link.url = url
@link.save
flash[:success] = 'Link was successfully created.'
redirect_to root_path
else
render 'new'
end
end
Этот метод не проверен, но может работать.
Обновление: Как я уже сказал, это один из способов сделать это.Другой способ - использовать любой из методов обратного вызова, например before_save или after_validation.