我收到一封带有链接和一些GET参数的电子邮件:
http://localhost:3000/confirmations?hash_id=jkljkjkllkjlkl&user_id=13
此页面将显示一些数据和两个按钮:CONFIRM和CANCEL。
我从INDEX方法获取数据>
def index
@confirmation = Invite.joins(:user).select('invites.id, invites.horario_desde, invites.horario_hasta, invites.estado, users.email, users.nombre, users.apellido, users.telefono, invites.complejo')
.where(:hash_id => filter_params[:hash_id],:user_id => filter_params[:user_id]).first
end
所以,如果我点击CONFIRM,这个确认应该将状态更新为CONFIRMED。我该怎么办呢?
我在控制器中创建了一个更新方法:
def update
if params[:commit] == 'Confirmar'
@confirmation.estado = 'Confirmado'
elsif params[:commit] == 'Cancelar'
@confirmation.estado = 'Cancelado'
end
if @confirmation.update
@user = User.joins(:postulation).where(:postulation => {:id => @confirmation.postulation_id})
UserNotifier.send_confirmation_to_user(@confirmation, @user)
end
end
并且在我的视图中我试图制作一个form_for,但这里是我遇到麻烦的地方,无法使其成功。我的属性没有出现。
index.html.erb
<%= form_for @confirmation, url: confirmations_path(@confirmation) do |confirmation|%>
<p>Horario: de a <%= confirmation.horario_hasta %></p>
<p> Donde? <%= confirmation.complejo%></p>
<%=f.submit 'Confirmar'%>
<%=f.submit 'Cancelar'%>
<%end%>
我的路线&gt;
get '/confirmations' => 'confirmations#index', as: 'pepe'
post '/confirmations' => 'confirmations#update', as: 'confirmations'
错误:
undefined method `some_field' for #<ActionView::Helpers::FormBuilder:0x36e5800>