Можем ли мы прикрепить некоторые переменные к маршруту в ruby на рельсах 6? - PullRequest
0 голосов
/ 11 марта 2020

Я новичок в ruby -on-rails, и я часами пытался сделать это:

На странице html * есть одна переменная X * Page1 одного контроллера C1 в моем приложении. И я хочу связать с другим путем путь путь1 с этой переменной X , чтобы я мог что-то сделать с этой переменной X в действии контроллера act1 соответствует этому пути маршрута path1 .

В моей ситуации:

<% @courses.each do |course| %>
        <tr>
          <td><%= link_to 'Enroll', enroll_path, method: :post, data: { confirm: 'Are you sure?' } %></td>
        </tr>

Этот код находится на странице просмотра html, и я хочу link_to enroll_path с переменной курс

post '/enroll', to: 'enrollments#enroll'

Это маршрут пути регистрации

def enroll
  enrollment = Enrollment.new(user_id: current_user.id, course_id: course[id])
  enrollment.save
  redirect_to root_url
end

Это действие, которое соответствует пути регистрации, и я хочу использовать переменную курс в нем.

Я пытался прикрепить переменную курса непосредственно к enroll_path, например:

<td><%= link_to 'Enroll', enroll_path(course), method: :post, data: { confirm: 'Are you sure?' } %></td>

, но это не сработало.

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 11 марта 2020

Вы пробовали

<%= link_to 'Enroll', enroll_path(course_id: course.id), method: :post, data: { confirm: 'Are you sure?' } %>

Полагаю, вам придется изменить строку контроллера на эту

enrollment = Enrollment.new(user_id: current_user.id, course_id: params[:course_id])

Эта часть (course_id: course.id) отправляет course_id в качестве параметра, поэтому в контроллере вы можете получить доступ к его значению, выполнив поиск params[:course_id].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...