我有一个_form.html.erb
部分,我的DailyEntry
模型看起来像这样:
<%= simple_form_for(@daily_entry) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :breakfast %>
<%= f.input :snack_1 %>
<%= f.input :lunch %>
<%= f.input :snack_2 %>
<%= f.input :dinner %>
<%= f.input :water_intake %>
<%= f.input :workout %>
<%= f.input :notes %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
每个都DailyEntry
属于一个User
...即每个daily_entry
记录都有一个user_id
列。
我希望current_user
能够daily_entry
从Home#Index
页面添加一个 - 无需复制create
我的DailyEntry
控制器的操作。
那么如何用一块石头杀死两只鸟呢?即将新创建的daily_entry
记录分配给当前用户,然后这一切都由我完成views/home/index.html.erb
?
编辑 1
我知道如何将每条记录分配给用户......在DailyEntry
控制器create
操作中,我有这个:
def create
@daily_entry = current_user.daily_entries.create(params[:daily_entry])
respond_to do |format|
if @daily_entry.save
format.html { redirect_to @daily_entry, notice: 'Daily entry was successfully created.' }
format.json { render json: @daily_entry, status: :created, location: @daily_entry }
else
format.html { render action: "new" }
format.json { render json: @daily_entry.errors, status: :unprocessable_entity }
end
end
end
我只是不确定如何从我的Home#Index.html.erb
. 如何在不复制控制器逻辑的情况下呈现此表单HomeController
?
编辑 2
我也试过这个:
<%= render partial: "daily_entries/form", @daily_entry => current_user.daily_entries.build %>
但我仍然收到此错误:
NoMethodError at /
undefined method `model_name' for NilClass:Class
在线:
<%= simple_form_for(@daily_entry) do |f| %>