【发布时间】:2017-01-05 17:52:04
【问题描述】:
我正在尝试在单独的控制器中呈现部分表单。
#app/views/users/my_transactions.html.erb
<%= render 'transactions/form', transaction: @transaction %>
表单页面。
#app/views/transactions/_form.html.erb
<%= form_for(transaction) do |f| %>
<% if transaction.errors.any? %>
...
但无法停止接收此错误:
Transaction::ActiveRecord_Associations_CollectionProxy:0x007fc308301c18 的未定义方法“to_key”
你的意思是?
to_query
to_set
to_ary
我的控制器:
#app/controllers/transactions_controller.rb
def create
@transaction = Transaction.new(transaction_params)
@transaction.user = current_user
...
和
#app/controllers/users_controller.rb
def my_transactions
@transaction = current_user.transactions
@user = current_user
end
提前谢谢你!!我找不到任何解决方案,而且我已经阅读了大量文档,希望能够解决。
编辑
更清晰的渲染调用视图(@engineersmnky 修复)
#app/views/users/my_transactions.html.erb
<h3>New Transaction</h3>
<%= render 'transactions/form', transaction: @user.transactions.build %>
<h3>Current Transactions</h3>
<%= render 'transactions/show' %>
显示部分清晰视图
#app/views/transactions/_show.html.erb
<% @user.transactions.each do |transaction| %>
<tr>
<td class="date"><%= transaction.created_at.strftime("%D") %></td>
<td><%= transaction.amount %></td>
<td class="convert-category"><%= transaction.category %></td>
<td class="convert-sub-category"><%= transaction.sub_category %></td>
<td><%= transaction.notes%></td>
【问题讨论】:
标签: ruby-on-rails ruby