多个设计注册表单视图
我假设第一行div中注入的ruby的整个格式是不正确的。我把它包括在内以显示所需的设计注册视图的数量。我也把错误包括在内,知道这很明显。
任何人都想借此机会举例说明多个if,elsif,when等语句的正确RoR格式?我喜欢所有意见。
请原谅并更正您认为合适的任何错误术语。
谢谢
错误: Devise中的SyntaxError :: RegistrationsController #new
设计/注册/ new.html.erb
def home
@contributor_plan = Plan.find(1)
@elitecontributor_plan = Plan.find(2)
@technician_plan = Plan.find(3)
@elitetechnician_plan = Plan.find(4)
@center_plan = Plan.find(5)
@elitecenter_plan = Plan.find(6)
@affair_plan = Plan.find(7)
@eliteaffair_plan = Plan.find(8)
end
控制器/ pages_controller.rb
<%= link_to "Contributor", new_user_registration_path(plan: @contributor_plan.id), class:'btn btn-info btn-lg btn-block' %>
页/ home.html.erb
(我主页视图中众多红宝石链接之一)
chrome.runtime.onMessage.addListener(
function(package, sender, sendResponse
){
switch (package.message){
case "open":
if (package.subject == "tab")
{
win = myNamespace.tabs[package.module];
result = win ? false : true;
if (result)
chrome.tabs.create(
{"url": package.url },
function(tab) {
if (chrome.extension.lastError )
console.log(chrome.extension.lastError);
else
myNamespace.tabs[package.module] = tab.id;
chrome.tabs.onRemoved.addListener(
function( tabId, removeInfo )
{
for (var k in myNamespace.tabs )
{
if (tabId === myNamespace.tabs[k])
{
myNamespace.tabs[k] = null;
break;
}
}
}
);
}
);
}
break;
case "initiate-page":
if (package.subject == "html-add-listeners")
{
switch(package.module){
case "easy_options":
case "advanced_options":
case "images_options":
sendResponse(
{ message:"initiate-page-response",
subject:"accept-namespace",
recepient: {id: package.sender.id },
module: package.module,
namespace: myNamespace,
info: "response to initiate-page message"
}
)
break;
}
}
break;
}
}
)
答案 0 :(得分:0)
我看到的第一件事是您正在使用&lt;%=%&gt; erb标签而不是&lt; %%&gt;对于if / elsif。这是不必要的并且可能存在问题。尝试取出=。
一些额外的想法:
对于case
语句而不是if
条件,这将是一个好地方。
在Rails中,最好的做法是将大块代码拉出到辅助方法中,而不是将其放在视图中。这通常不仅仅是风格问题,因为它会使调试变得更容易。
最后,它并不完全清楚你在这里想做什么。在我看来,代码所做的唯一事情是在表单上方显示不同的文本,下面的表单不受erb代码的影响。这让我怀疑有一种更简单,更不易出错的方式来做你正在做的事情。各种计划的硬编码链接和实例变量也是红旗。我会尝试重构代码。