Прежде всего, link_to является помощником html-тега, вторым аргументом является url, за которым следует html_options. Вы хотели бы передать account_id в качестве параметра url в путь. Если вы правильно настроили именованные маршруты в routes.rb, вы можете использовать помощники путей.
link_to "+ Service", new_my_service_path(:account_id => acct.id)
Я считаю, что наилучшей практикой является передача значений модели в качестве параметра, вложенного внутри:
link_to "+ Service", new_my_service_path(:my_service => { :account_id => acct.id })
# my_services_controller.rb
def new
@my_service = MyService.new(params[:my_service])
end
И вам нужно контролировать, что account_id разрешено для «массового присвоения». В rails 3 вы можете использовать мощные элементы управления для фильтрации правильных параметров в контроллере, где он принадлежит. Я очень рекомендую.
http://apidock.com/rails/ActiveModel/MassAssignmentSecurity/ClassMethods
Также обратите внимание, что если account_id не устанавливается пользователем свободно (например, , пользователь может только отправить услугу для собственной отдельной учетной записи_и_и, то лучше не отправлять ее по запросу, а устанавливать ее внутри контроллера, добавив что-то вроде:
@my_service.account_id = current_user.account_id
. Вы можете наверняка объедините эти два, если вы разрешаете пользователям создавать службы в своей собственной учетной записи, но разрешить администратору создавать кого-либо, используя роли в attr_accessible.
надеюсь, что это поможет