新手问题 如何对一个页面中所有的 field 进行单独操作

lilixiaocc · 2016年07月16日 · 1807 次阅读

大家好,我是 ror 的新手,最近在做一个 project,目的是创造一个打印界面,在一个 printout 上打出好几个 printout fields 我有两个 model,一个 printout.rb,

has_many :printout_fields

另一个是 printout_field.rb,

belongs_to :printout

数据库如下: printout: printout_field:

我要做的就是有个网页, , 你可以按 new printout,这样就会出现一个新的界面,里面输入你想要的 printout 的信息,如名字和位置。这里我都还可以

但是接下来是要在每个 printout 里面加入一个一个 field,首先是按 new fields,进入这个页面, 这里可以在 url 看到对应的 printout 的 id,比如说你是按得第一条 infant 这个 printout 里面的 new fields,就会让你在 printout_id = 1 这个界面中来进行添加。我每次填入信息到这个界面中以后都会按 create,这会通过 form 来提交,然后按 view fields 就可以看到自己输入的所有 fields,这些 fields 都属于同一个 printout。然后我们退回到最开始的 printout 页面,里面有个 edit fields,就是要对所有产生的 fields 来进行操作,如果按下,会有如下效果 我可以移动这些 fields,通过 jquery ui 的 draggable,然后也可以右击对他们进行修改。但是下面就是问题了

在我的 manage_printout_field controller 里面,在 edit action 中,我用@printoutfield = PrintoutField.find(params[:id]) 并不能找到 @printoutfield,错误显示为

Couldn't find PrintoutField without an ID

只有打@printoutfield = PrintoutField.find(1),才能取到 printout_field_id 是 1 的这个 field,而当右击准备修改的时候,每个 field 所对应的默认值都是 id 是 1 的这个 field 的值,这个我知道是因为我 hard code 了 id 是 1,但是我想知道我如何在 edit?printout_id=1 的这个页面上来对每个 field 可以进行操作。

我觉得我的 controller 并没有办法获得这个 parameter,我也试了很多不同的名字,都行不通,有什么办法可以动态的来操作这个界面? 谢谢!!

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号