Ниже приведен общий подход Rails к созданию модели с помощью ассоциации - при условии, что current_user установлен во время входа в систему или где-либо еще, а @type установлен соответствующим образом в before_filter
.
В Bar Controller
:
def new
@bar = current_user.bar.build
end
def create
@bar = current_user.bar.build(params[:bar].merge(:type_id => @type.id))
if @bar.save
flash.now[:success] = "wohoo!"
redirect_to @bar
else
render :new
end
end
Построение через ассоциацию таким образом автоматически установит для поля user_id
на панели значение current_user.id
.
Обратите внимание, что вы, вероятно, захотите redirect_to
а не render
в случае успеха.Если вы хотите перейти к редактированию напрямую, тогда пользователь redirect_to edit_bar_path(@bar)
.Если вы хотите узнать больше информации о причинах, обратитесь к Руководству по макетам и рендерингу , в котором обсуждается перенаправление render v и последствия каждого из них.