Я задал этот вопрос ранее и получил часть пути туда, где мне нужно было быть.
У меня есть простое приложение с тремя таблицами. Пользователи, роботы и получатели. Роботы принадлежат пользователям и Получатели принадлежат роботам.
На странице показа роботов я хочу иметь возможность создавать получателей для этого робота прямо на странице показа роботов.
У меня есть следующий код на странице показа робота, на котором перечислены текущие получатели:
<table>
<% @robot.recipients.each do |recipient| %>
<tr>
<td><b><%=h recipient.chat_screen_name %></b> via <%=h recipient.protocol_name</td>
<td><%= link_to 'Edit', edit_recipient_path(recipient) %> </td>
<td><%= link_to 'Delete', recipient, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
и теперь у меня есть это в представлении Robot show:
<% form_for(@recipient) do |f| %>
Enter the screen name<br>
<%= f.text_field :chat_screen_name %>
<p>
<%= f.submit 'Update' %>
</p>
<% end %>
и контроллер роботов добавил к этому также:
@recipient = Recipient.new
@recipients = Recipient.all
Теперь я вижу поле, которое хочу увидеть, но кажется, что получатель все еще не связан с роботом, который показывает страницу, на которой находится пользователь. Более того, когда у меня есть этот код, перенаправление при создании идет на страницу индекса получателей, а не на страницу показа робота.
У меня есть этот код в контроллере получателей в действии create:
def create
@recipient = Recipient.new(params[:recipient])
respond_to do |format|
if @recipient.save
flash[:notice] = 'The new recipient was successfully added.'
format.html { redirect_to (robot_path(@recipient.robot)) }
format.xml { render :xml => @recipient, :status => :created, :location => @recipient }
else
format.html { render :action => "new" }
format.xml { render :xml => @recipient.errors, :status => :unprocessable_entity }
end
end
end
Я бы очень признателен за любую дополнительную помощь. Я знаю, что близок к решению, но не совсем там ....:)
Спасибо.