2015-09-07 3 views
1

мне нужно, чтобы создать новое событие со страницы гостевой пользователя и Event.visitor_id следует user.idСоздание нового экземпляра модели с paramethers (Rails)

Event.rb

def create 
@event = current_user.owner_events.new(event_params) 
end 

protected 

def event_params 
params.require(:event).permit(:visitor_id) 
end 

мне нужно исправить вид, ниже которого не работает:

<%= link_to "Create event with this user", events_path(visitor_id: @user.id), method: :post %> 

я получаю: ActionController :: ParameterMissing в EventsController # создать

ответ

1

Попробуйте, что (вы забыли добавить event ключ):

<%= link_to "Create event with this user", events_path(event: { visitor_id: @user.id }), method: :post %> 

Для получения более подробной информации читайте 'strong parameters' gem documentation.

+0

Это не работает, как хорошо, но спасибо за ссылку. – electrify

0

Я просто должен был добавить .to_i к @ user.id

<%= link_to "Create event", events_path(:event =>{:visitor_id => @user.id.to_i}), :method => :post %> 
+0

Действительно? Это вряд ли будет правдой. Не могли бы вы удалить «to_i» и перепроверить его? Я уверен, что это было из-за отсутствия ключа 'event'. – tiktak

+1

Хм, вы правы, теперь это работает без .to_i – electrify

Смежные вопросы