2016-04-13 3 views
1

У меня есть такая странная проблема: У меня есть этот метод:Rails не могут быть сохранены

def create_default_workspace(user) 
    @workspace = Workspace.new(title: "#{user.name}'s workspace") 
    @workspace.save 
    user.selected_workspace_id = @workspace.id 
    if user.save 
    puts "Saved" 
    else 
    puts "not saved" 
    end 
end 

Который дает мне «не спас». У вас есть идеи, почему переменная user не может быть сохранена?

+1

вы знаете о сильном параметре в рельсах? – uzaif

+1

Замените свой '.save' метод' .save! 'И добавьте полную стекцию здесь. – Uzbekjon

+0

@uzaif вы совершенно правы! Я забыл этот момент ... Я добавил params.require (: user) .permit (: selected_workspace_id), и теперь все в порядке. –

ответ

3

Попробуйте этот код

def create_default_workspace(user) 
    @workspace = Workspace.new(workspace_params) 
    @workspace.save 
    user.selected_workspace_id = @workspace.id 
    if user.save 
    puts "Saved" 
    else 
    puts "not saved" 
    end 
end 

private 

    def workspace_params 
    params.require(:workspace).permit(:title) 
    end 

Вы забыли добавить сильный метод Params

0

Проблема заключалась в том, что я забыл о сильных параметрах, как упоминал @uzaif. После добавления params.require (пользователь): .permit (: selected_workspace_id) работает хорошо

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