我需要通过表单将参数从一个控制器动作传递给另一个控制器动作。发送参数edit
的操作仅呈现编辑页面,而没有重定向。但是,我需要在update
操作中使用此参数。我认为我可以使用隐藏字段:
f.hidden_field :route_id, value: @route.id
但是由于属性不属于同一个对象,因此表单是unknown attribute 'route_id'
有什么建议吗?
编辑:更多信息。因此,我们在此编辑操作中查看的是BusStop
。需要注意的重要一点是,通过名称或通过BusStop
上的停靠点列表进行搜索,有两种到达Route
的方法。现在,为了方便用户,我想做的是一个“保存并下一个”按钮,但是我们只希望在通过路线列表到达停靠点时使用该选项。即提交表单并重定向到下一个BusStop
。但是,为了找到下一个BusStop
,我们需要两件事。 Route.id
和BusStopsRoute.direction
。 BusStopsRoutes
有两个方向,而BusStop
可能有两个方向,也可能没有,因此我们不能通过停靠来推断方向。同样,我们无法通过Route
来推断BusStop
,因为BusStop
和Route
通过BusStopsRoute
具有多对多关系。
稍微讲一下,我在Route.id
编辑操作中有BusStopsRoute.direction
和BusStop
的值。我需要在BusStop
更新操作中找到这些值,以查找下一个BusStop
。
答案 0 :(得分:1)
您使用此:
c = {'Term': pd.Series(['Cool', 'Cool', 'New','New','New','Very', 'Very','Very','Very','Very'])}
df_2 = pd.DataFrame(c)
print df_2
Term
0 Cool
1 Cool
2 New
3 New
4 New
5 Very
6 Very
7 Very
8 Very
9 Very
当您要根据由f.hidden_field :route_id, value: @route.id
表示的模型上的属性创建隐藏字段时。
由于您要为不是f
表示的模型上的属性的值创建一个隐藏字段,因此请使用f
,例如:
hidden_field_tag
有关更多信息,请参见docs。
答案 1 :(得分:-2)
您可以使用ActiveModel::Attributes API。
在该对象的类中,
class Voxorin < ApplicationRecord
attribute :route_id
end
假设您的对象是ActiveRecord对象,则不需要包含模块。
您还可以使用attr_accessor
或自己编写getter / setter方法,但是您会丢失所有围绕属性的方法,例如DirtyMethods(route_id_changed?)和强制方法。