在视图中,我有一个如下所示的链接"老师"控制器。这个链接应该向另一个控制器发送一个id" teacher_details" (1对1的关系)。此链接打开一个网页,添加有关教师的更多详细信息。
TraversableOnce[Potato]
我的控制器代码是
RDD[Potato]
当我运行此代码时,它会向我显示一个错误,#34;找不到ID"。我究竟做错了什么。该链接未正确传递id参数。
路线文件
<%= link_to 'Add details', new_teacher_detail_path(@teacher), :id => "add_detail_link" %>
答案 0 :(得分:0)
您似乎没有在路由中使用Teacher模型嵌套TeacherDetail。
这就是为什么它没有在rank
中获得任何<?php
$entities = getEntities();
$from = array();
$to = array();
foreach ($entities as $ent => $code) {
$from[] = '&' . $ent . ';';
$to[] = '&#' . $code . ';';
}
$str = 'ξ and τ';
// you can pass arrays to str_replace
// see http://php.net/manual/en/function.str-replace.php
echo str_replace($from, $to, $str);
function getEntities() {
// http://www.mit.edu/afs.new/sipb/project/php/include/entities.h
return array(
'AElig' => 198,
'Aacute' => 193,
'Acirc' => 194,
'Agrave' => 192,
'Alpha' => 913,
'Aring' => 197,
'Atilde' => 195,
'Auml' => 196,
'Beta' => 914,
'Ccedil' => 199,
'Chi' => 935,
'Dagger' => 8225,
'Delta' => 916,
'ETH' => 208,
'Eacute' => 201,
'Ecirc' => 202,
'Egrave' => 200,
'Epsilon' => 917,
'Eta' => 919,
'Euml' => 203,
'Gamma' => 915,
'Iacute' => 205,
'Icirc' => 206,
'Igrave' => 204,
'Iota' => 921,
'Iuml' => 207,
'Kappa' => 922,
'Lambda' => 923,
'Mu' => 924,
'Ntilde' => 209,
'Nu' => 925,
'OElig' => 338,
'Oacute' => 211,
'Ocirc' => 212,
'Ograve' => 210,
'Omega' => 937,
'Omicron' => 927,
'Oslash' => 216,
'Otilde' => 213,
'Ouml' => 214,
'Phi' => 934,
'Pi' => 928,
'Prime' => 8243,
'Psi' => 936,
'Rho' => 929,
'Scaron' => 352,
'Sigma' => 931,
'THORN' => 222,
'Tau' => 932,
'Theta' => 920,
'Uacute' => 218,
'Ucirc' => 219,
'Ugrave' => 217,
'Upsilon' => 933,
'Uuml' => 220,
'Xi' => 926,
'Yacute' => 221,
'Yuml' => 376,
'Zeta' => 918,
'aacute' => 225,
'acirc' => 226,
'acute' => 180,
'aelig' => 230,
'agrave' => 224,
'alefsym' => 8501,
'alpha' => 945,
'amp' => 38,
'and' => 8743,
'ang' => 8736,
'aring' => 229,
'asymp' => 8776,
'atilde' => 227,
'auml' => 228,
'bdquo' => 8222,
'beta' => 946,
'brvbar' => 166,
'bull' => 8226,
'cap' => 8745,
'ccedil' => 231,
'cedil' => 184,
'cent' => 162,
'chi' => 967,
'circ' => 710,
'clubs' => 9827,
'cong' => 8773,
'copy' => 169,
'crarr' => 8629,
'cup' => 8746,
'curren' => 164,
'dArr' => 8659,
'dagger' => 8224,
'darr' => 8595,
'deg' => 176,
'delta' => 948,
'diams' => 9830,
'divide' => 247,
'eacute' => 233,
'ecirc' => 234,
'egrave' => 232,
'empty' => 8709,
'emsp' => 8195,
'ensp' => 8194,
'epsilon' => 949,
'equiv' => 8801,
'eta' => 951,
'eth' => 240,
'euml' => 235,
'euro' => 8364,
'exist' => 8707,
'fnof' => 402,
'forall' => 8704,
'frac12' => 189,
'frac14' => 188,
'frac34' => 190,
'frasl' => 8260,
'gamma' => 947,
'ge' => 8805,
'gt' => 62,
'hArr' => 8660,
'harr' => 8596,
'hearts' => 9829,
'hellip' => 8230,
'iacute' => 237,
'icirc' => 238,
'iexcl' => 161,
'igrave' => 236,
'image' => 8465,
'infin' => 8734,
'int' => 8747,
'iota' => 953,
'iquest' => 191,
'isin' => 8712,
'iuml' => 239,
'kappa' => 954,
'lArr' => 8656,
'lambda' => 955,
'lang' => 9001,
'laquo' => 171,
'larr' => 8592,
'lceil' => 8968,
'ldquo' => 8220,
'le' => 8804,
'lfloor' => 8970,
'lowast' => 8727,
'loz' => 9674,
'lrm' => 8206,
'lsaquo' => 8249,
'lsquo' => 8216,
'lt' => 60,
'macr' => 175,
'mdash' => 8212,
'micro' => 181,
'middot' => 183,
'minus' => 8722,
'mu' => 956,
'nabla' => 8711,
'nbsp' => 160,
'ndash' => 8211,
'ne' => 8800,
'ni' => 8715,
'not' => 172,
'notin' => 8713,
'nsub' => 8836,
'ntilde' => 241,
'nu' => 957,
'oacute' => 243,
'ocirc' => 244,
'oelig' => 339,
'ograve' => 242,
'oline' => 8254,
'omega' => 969,
'omicron' => 959,
'oplus' => 8853,
'or' => 8744,
'ordf' => 170,
'ordm' => 186,
'oslash' => 248,
'otilde' => 245,
'otimes' => 8855,
'ouml' => 246,
'para' => 182,
'part' => 8706,
'permil' => 8240,
'perp' => 8869,
'phi' => 966,
'pi' => 960,
'piv' => 982,
'plusmn' => 177,
'pound' => 163,
'prime' => 8242,
'prod' => 8719,
'prop' => 8733,
'psi' => 968,
'quot' => 34,
'rArr' => 8658,
'radic' => 8730,
'rang' => 9002,
'raquo' => 187,
'rarr' => 8594,
'rceil' => 8969,
'rdquo' => 8221,
'real' => 8476,
'reg' => 174,
'rfloor' => 8971,
'rho' => 961,
'rlm' => 8207,
'rsaquo' => 8250,
'rsquo' => 8217,
'sbquo' => 8218,
'scaron' => 353,
'sdot' => 8901,
'sect' => 167,
'shy' => 173,
'sigma' => 963,
'sigmaf' => 962,
'sim' => 8764,
'spades' => 9824,
'sub' => 8834,
'sube' => 8838,
'sum' => 8721,
'sup' => 8835,
'sup1' => 185,
'sup2' => 178,
'sup3' => 179,
'supe' => 8839,
'szlig' => 223,
'tau' => 964,
'there4' => 8756,
'theta' => 952,
'thetasym' => 977,
'thinsp' => 8201,
'thorn' => 254,
'tilde' => 732,
'times' => 215,
'trade' => 8482,
'uArr' => 8657,
'uacute' => 250,
'uarr' => 8593,
'ucirc' => 251,
'ugrave' => 249,
'uml' => 168,
'upsih' => 978,
'upsilon' => 965,
'uuml' => 252,
'weierp' => 8472,
'xi' => 958,
'yacute' => 253,
'yen' => 165,
'yuml' => 255,
'zeta' => 950,
'zwj' => 8205,
'zwnj' => 8204,
);
}
?>
参数。因此,您无法在以下操作中找到id
。
new_teacher_detail_path
尝试更改您的link_to,如下所示:
params[:id]
现在您将正确获取ID参数。
答案 1 :(得分:0)
教师和详细信息的路由文件应如下所示:
resources :teachers do
get 'details/new', on: :member
end
然后在视图中你可以像这样使用link_to
<%= link_to 'Add details', details_new_teacher(@teacher) %>
无需更改控制器
答案 2 :(得分:0)
一对一的关系teacher_detail
foreign_key
为teacher_id
,所以你可以这样使用
<%= link_to 'Add details', new_teacher_detail_path(id: @teacher.id), :id => "add_detail_link" %>