Как я могу link_to отредактировать определенный пост, используя его идентификатор? Мне нужно запечатать удостоверение личности - PullRequest
0 голосов
/ 27 апреля 2018

Я хочу, чтобы любой пользователь мог редактировать вопрос для определенного поста. Я не зацикливаю посты на этой странице, поэтому мне нужно запрограммировать post_id в качестве параметра. Вот что я попробовал:

<%= link_to "Add a question", edit_post_path(@post[:id => 3]) %>

и

<%= link_to "Add a question", edit_post_path(@post.3) %>

и

..., edit_post_path(@post.params[:id == 3])

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

Вы можете просто передать @post в путь, если @post инициализирован в вашем контроллере.

<%= link_to "Add a question", edit_post_path(@post) %>

Обновление:

Если вы определили @posts, и он содержит все сообщения, и вы просматриваете его, чтобы показать отдельные сообщения, и я предполагаю, что вы делаете что-то вроде этого

<% @posts.each do |post| %>
  <div class="post">
    <h3><%= post.title %></h3>
    <p><%= post.body %></p>
    <!-- You'll pass local post variable to it. to get the link -->
    <%= link_to "Add a question", edit_post_path(post) %>  
  </div>

<% end %>

вы по-прежнему будете иметь доступ к отдельным сообщениям и их идентификаторам. Таким образом, вы можете легко создать ссылку для добавления нового вопроса.

0 голосов
/ 28 апреля 2018

Rails хитрый и полезный. Когда вы передаете объект в posts_path, все, что он делает, это извлекает идентификатор из объекта.

Таким образом, если идентификатор записи в @post равен 2, тогда все эти три строки будут делать одно и то же:

posts_path(@post)
posts_path(@post.id)
posts_path(2)
0 голосов
/ 27 апреля 2018

Наконец я попробовал это, и это сработало. Я не знаю, действительно ли это путь Rails.

<%= link_to "Add a question", edit_post_path(@post=Post.find(3)) %>

Спасибо за внимание!

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